
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表示是否还在填充前导0 ll dfs (int cur ,int x, bool f, bool g) { if (cu.原创 2021-05-13 22:23:43 · 286 阅读 · 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 · 363 阅读 · 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 · 173 阅读 · 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 · 177 阅读 · 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 · 250 阅读 · 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 · 206 阅读 · 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 · 326 阅读 · 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 · 356 阅读 · 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 · 360 阅读 · 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 · 258 阅读 · 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 · 239 阅读 · 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 · 219 阅读 · 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 · 126 阅读 · 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 · 169 阅读 · 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 · 148 阅读 · 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 · 432 阅读 · 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 · 188 阅读 · 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 · 216 阅读 · 0 评论 -
一道有趣的区间DP--HDU4283(通俗易懂,附加栗子)
不知道是听谁说的,这是一道区间DP的入门题,对于区间思想确实是一道入门题,但是DP方程个人觉得还是很难的,反正我这种蒟蒻肯定是想不出来的。嘤 首先感谢资料:https://blog.youkuaiyun.com/libin56842/article/details/9722077 来看一下题目: 有一群人,按照给定输出从1到n排好了顺序,准备一个接一个的出去.此外旁边还一个小黑屋(一个类似于栈的东西),可以用...原创 2018-05-24 17:02:57 · 356 阅读 · 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 · 172 阅读 · 0 评论