
DP
卡常带师
这个作者很懒,什么都没留下…
展开
-
学习计划----数位DP
题目链接:https://www.luogu.com.cn/problem/P2657解题思路:数位DP模板题,按位进行记忆优化搜索,详情见代码const int N = 15;int len;string L , R, v;ll dp[N][N][2][2];//cur表示当前位,x代表上一位填的什么//f表示从[0,cur-1]前缀是否和给定上界相同//g表示是否还在填充前导0ll dfs (int cur ,int x, bool f, bool g){ if (cu.原创 2021-05-13 22:23:43 · 272 阅读 · 1 评论 -
CF1442C Graph Transpositions 分层图
题目链接:https://codeforces.com/problemset/problem/1442/C解题思路:发现当反转18次的时候,代价是超过最大的m的,所以分开讨论,首先计算出从起点到达终点最少需要多少次反转,如果超过18次,按最少次数转移,同时计算出最少次数下的最短路,当小于18次时,这个时候,所需要的所有代价不会超过long long(所以取模后不会丢失大小关系),所以可以直接使用dijkstra求解//#define LOCAL#include <bits/stdc++.h&.原创 2020-11-06 15:12:33 · 353 阅读 · 0 评论 -
复习计划-状态压缩DP
状态压缩DP观察数据范围提取题目中状态关系设计状态转移方程-代码套路先计算出所有合法状态再根据情况处理出所有合法状态可以转移到的合法状态经典例题 (棋盘式)SGU223//#define LOCAL#include <bits/stdc++.h>using namespace std;#define ll long long#define mem(a, b) memset(a,b,sizeof(a))#define sz(a) (int)a.size()原创 2020-09-10 12:27:31 · 166 阅读 · 0 评论 -
牛客暑期多校训练营第一场 Infinite Tree
//#define LOCAL#include <bits/stdc++.h>using namespace std;#define ll long long#define mem(a, b) memset(a,b,sizeof(a))#define sz(a) (int)a.size()#define INF 0x3f3f3f3f#define DNF 0x7f#define DBG printf("this is a input\n")#define fi first#.原创 2020-08-31 22:40:10 · 166 阅读 · 0 评论 -
CF1009 长链剖分优化树形DP或线段树合并
//#define LOCAL#include <bits/stdc++.h>using namespace std;#define ll long long#define mem(a, b) memset(a,b,sizeof(a))#define sz(a) (int)a.size()#define INF 0x3f3f3f3f#define DNF 0x7f7f7f7f#define DBG printf("this is a input\n")#define fi f.原创 2020-08-30 09:54:48 · 241 阅读 · 0 评论 -
P3233 世界树 虚树+树形DP
//#define LOCAL#include <bits/stdc++.h>using namespace std;#define ll long long#define mem(a, b) memset(a,b,sizeof(a))#define sz(a) (int)a.size()#define INF 0x3f3f3f3f#define DNF 0x7f7f7f7f#define DBG printf("this is a input\n")#define fi f.原创 2020-08-19 21:43:57 · 198 阅读 · 0 评论 -
2100分 E. Graph Coloring 二分图染色+背包+记录路径+贪心构造
#include <bits/stdc++.h>using namespace std;#define ll long long#define mem(a, b) memset(a,b,sizeof(a))#define INF 0x3f3f3f3f#define p_queue priority_queue#define DBG printf("this is a input\n")#define fi first#define se second#define mk(a.原创 2020-05-20 17:46:15 · 311 阅读 · 0 评论 -
HDU6662 - 博弈转换根树形dp模型
#include <bits/stdc++.h>using namespace std;#define ll long long#define mem(a, b) memset(a,b,sizeof(a))#define DBG printf("this is a input\n")#define fi first#define se second#define mk(a, b) make_pair(a,b)#define p_queue priority_queue...原创 2020-05-14 00:04:44 · 330 阅读 · 0 评论 -
单调决策+贪心+分治 HDU6698
//#define LOCAL#include <bits/stdc++.h>using namespace std;#define ll long long#define mem(a, b) memset(a,b,sizeof(a))#define INF 0x3f3f3f3f#define DNF 0x7f#define DBG printf("this is...原创 2020-05-04 09:37:39 · 326 阅读 · 0 评论 -
状压dp 求 哈密顿图最短路
dp[i][j]:整体经过状态为i时,终点在j的最短路#include <bits/stdc++.h>using namespace std;#define ll long long#define mem(a, b) memset(a,b,sizeof(a))#define INF 0x3f3f3f3f#define DBG printf("this is a inp...原创 2020-04-20 13:01:16 · 249 阅读 · 0 评论 -
二分贪心最长上升下降子序列
#include <bits/stdc++.h>using namespace std;#define ll long long#define mem(a, b) memset(a,b,sizeof(a))#define INF 0x3f3f3f3f#define DBG printf("this is a input\n")#define fi first#defi...原创 2020-04-12 14:09:07 · 228 阅读 · 0 评论 -
最长不下降子序列最少划分
#include<bits/stdc++.h>using namespace std;struct node{ int x , y, index;}cu[100005];bool cmp(node a ,node b){ return a.x < b.x;}int dp[200005];int ca[200005];int ans[20000...原创 2020-04-12 11:41:26 · 214 阅读 · 0 评论 -
POJ1651--区间DP
#include <algorithm>#include <iostream>#include <string.h>#include <stdio.h>#include <vector>#include <queue>#include <set>#include <map>using...原创 2019-11-24 14:54:38 · 120 阅读 · 0 评论 -
区间DP-codeforce149D
#include<bits/stdc++.h>using namespace std;#define ll long long#define mem(a, b) memset(a,b,sizeof(a))#define INF 0x3f3f3f3f#define DBG printf("this is a input\n")string s;int match[800]...原创 2019-11-24 14:53:39 · 161 阅读 · 1 评论 -
数位DP入门
#include <bits/stdc++.h>using namespace std;#define ll long long#define mem(a, b) memset(a,b,sizeof(a))#define INF 0x3f3f3f3f#define DBG printf("this is a input\n")int num[100];ll dp[30...原创 2019-11-24 14:51:42 · 137 阅读 · 0 评论 -
经典状态压缩DP-HDU1565
#include<stdio.h>#include<iostream>#include<algorithm>#include<string.h>#include<bits/stdc++.h>using namespace std;int dp[20][20000],num[22][22], True[20000];int n;bool s...转载 2018-05-22 10:56:21 · 426 阅读 · 0 评论 -
经典状态压缩DP-POJ3254
#include<stdio.h>#include<iostream>#include<algorithm>#include<string.h>using namespace std;#define mod 100000000int n , m;int False[20000],True[20000],dp[14][20000];bool searc...原创 2018-05-22 19:25:51 · 180 阅读 · 0 评论 -
区间DP入门-POJ1651
借鉴了其他博客的思路整理了一下代码#include<stdio.h>#include<iostream>#include<algorithm>#include<string.h>using namespace std;#define INF 9999999int dp[105][105];int num[105];int main(){ int...原创 2018-05-23 16:50:54 · 206 阅读 · 0 评论 -
一道有趣的区间DP--HDU4283(通俗易懂,附加栗子)
不知道是听谁说的,这是一道区间DP的入门题,对于区间思想确实是一道入门题,但是DP方程个人觉得还是很难的,反正我这种蒟蒻肯定是想不出来的。嘤首先感谢资料:https://blog.youkuaiyun.com/libin56842/article/details/9722077来看一下题目:有一群人,按照给定输出从1到n排好了顺序,准备一个接一个的出去.此外旁边还一个小黑屋(一个类似于栈的东西),可以用...原创 2018-05-24 17:02:57 · 348 阅读 · 2 评论 -
区间DP---HDU - 2476
#include<stdio.h>#include<iostream>#include<string.h>#include<algorithm>#include<math.h>using namespace std;int dp[105][105];int ans[200];int main(void){ str...转载 2018-05-26 10:43:10 · 165 阅读 · 0 评论