dp
jackzhan01
jackzhan
展开
-
10.31 CF1072D test6T2
传送门http://codeforces.com/contest/1072/problem/D重点!!!!i,j,k这些循环变量一定要分清楚scanf真的比cin快很多思路首先,预处理出用他给你的k个a,和序列里的a能走到哪,所及之处都替换成a然后一边走,一边输出路径,如何??用vis[i][j]表示在当前求出的最小字典序字符串,点(i,j)能不能走到每次求出上次能走到的...原创 2018-10-31 23:05:27 · 184 阅读 · 1 评论 -
数位DP
https://blog.csdn.net/wust_zzwh/article/details/52100392转载 2018-11-07 20:28:12 · 90 阅读 · 0 评论 -
luogu1220_区间dp
solution显然这是个区间dp状态:f[i][j][0]和f[i][j][1]表示把i到j这个连续区间的灯关掉,0表示关完之后在i,1表示关完之后在j转移:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<q...原创 2018-11-07 22:33:39 · 109 阅读 · 0 评论 -
矩阵快速幂模板(重载运算符)
题意求斐波那契数列第n项,n<=1e18solution1.显然O(n)递推肯定不行2.所以我们考虑用矩阵快速幂加速递推#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<queue>#include&l原创 2018-11-05 22:55:38 · 2459 阅读 · 0 评论 -
luogu1020导弹拦截LIS模版(lower_bound用法)
最长上升子序列LIS-导弹拦截lower_bound&&upper_bound用法原创 2019-07-19 19:29:20 · 323 阅读 · 0 评论 -
状压dp(p1896+1171)
状态压缩动态规划1. 互不侵犯2. TSP问题原创 2019-07-19 22:56:32 · 117 阅读 · 0 评论 -
dp入门题-基础递推
1错排问题2涂色问题3过河问题原创 2019-07-21 12:27:08 · 214 阅读 · 0 评论 -
P1388算式_区间dp入门
P1388算式_区间dp入门(1*2+3)*(4+5)=45原创 2019-07-21 17:47:50 · 241 阅读 · 1 评论 -
树形dp入门
1. dp求树的重心POJ16552. 树的直径转载 2019-07-22 07:31:40 · 118 阅读 · 0 评论 -
P2513 逆序对数列-前缀和优化dp
dp原创 2019-08-08 13:54:26 · 212 阅读 · 0 评论 -
HDU3507 Bzoj3156 斜率优化dp模板
HDU3507 斜率优化dp模板BZOJ3156原创 2019-08-09 14:20:04 · 155 阅读 · 0 评论 -
期望与概率dp
概率概率加法互不相交的事件,P(A或B发生)=P(A)+P(B)如果A和B所涵盖的结果有交集,那么P(A或B发生)=P(A)+P(B)-P(A与B同时发生)概率乘法在两个 互不干扰的事中,事件A在其中一件事中,事件B在另外一件事中那么P(A与B同时发生)=P(A)P(B)e.g. 掷两个骰子,P(第一个点数小于3且第二个点数为偶数)=(2/6)(3/6)=1/6期望事件A...原创 2019-08-09 22:09:37 · 782 阅读 · 0 评论 -
数位dp模板+总结
1.不要62和42.包含13且被13整除3.windy数(前导零)4.P4124 [CQOI2016]手机号码5.P4317 花神的数论题6. 数字统计原创 2018-11-07 19:48:34 · 141 阅读 · 0 评论 -
luogu1156_垃圾陷阱_dp背包
类似背包的dp题题面https://www.luogu.org/problemnew/show/P1156solutionf[i] 表示高度为i的最大生命值一个物品可以用来吃或者跳得更高,所以f[i]可以转移到f[i+hight]和f[i]+lifecode#include<iostream>#include<cstdio>#include<c...原创 2018-11-07 14:04:43 · 128 阅读 · 0 评论 -
luogu1417带排序的01背包
https://www.luogu.org/problemnew/show/P1417题解:https://www.luogu.org/problemnew/solution/P1417原创 2018-11-07 13:50:31 · 115 阅读 · 0 评论 -
10.18二中校内T2 区间dp
街道上一共有原创 2018-10-31 09:47:08 · 156 阅读 · 0 评论 -
清北test2 T3树上dp或递推
思路要求到一个点距离为奇数的所有节点的距离和及偶数(记为ansodd[i]和anseven[i])那么我们直接求出所有的ans如何??先dfs o(n)求出节点1的ansodd和anseven。(同时维护一个sizodd及sizeven表示i点子树内到他距离为奇数的个数)。然后我们发现不需要对每个点都o(n)跑一边DFS,我们发现一个节点的ans可以有他的父亲转移过来。通过讨论...原创 2018-11-01 15:27:39 · 112 阅读 · 0 评论 -
10.15二中校内T3 方案数dp
10.15 T3 Dp**3.棋子(chess.cpp/c/pas)【问题描述】Magolor要在长方形的棋盘上放置棋子。他有一个n*m格的棋盘,以及k种不同颜色的棋子。第i种颜色的棋子有a_i个,同样颜色的棋子没有区别。他要把这些棋子全部放到棋盘中,但是有些棋子会互相攻击。攻击只会发生在不同颜色的棋子之间,而且只有当两个棋子位于同一行或者同一列,才能互相攻击。一个摆放方案是安全的当且...原创 2018-10-31 09:46:46 · 129 阅读 · 0 评论 -
10.24 test3 T2
题干对于位运算来说,每一位是独立的,所以单独考虑每一位,然后用乘法原理乘起来dp[i][j]表示前i行中j列有1的方案数#include&amp;amp;lt;iostream&amp;amp;gt;#include&amp;amp;lt;cstdio&amp;amp;gt;#include&amp;amp;lt;cstring&amp;amp;gt;#include&am原创 2018-10-31 09:45:36 · 139 阅读 · 0 评论 -
11.3清北集训_独立集和覆盖集dpT3
Graphsolution首先把图用拓扑排序转换成与之对应的序列发现独立集就是在序列上的上升子序列发现覆盖集实际就是任意一个没有选入子序列的元素都必须与一个在子序列的元素组成逆序对把两个集结合起来:发现选出的子序列可以把原序列切成若干块,对于区间(i,j),(i,j)中的所有元素中>=a[i]的min若大于a[j],这个子序列便合法第4点非常重要!!!这样我们就可以dp了...原创 2018-11-03 14:08:54 · 166 阅读 · 0 评论 -
11.3清北集训T1work_dp+单调队列优化
solutionsubtask1 暴力dp O(nk)#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<queue>#include<cmath>#include<cstdlib>#i原创 2018-11-03 22:41:17 · 122 阅读 · 0 评论 -
luogu1282 dp
solution首先,这个题可以用背包解这里用另一个简单的dp另f[i][j]表示考虑到第i个骨牌,第一行和为j,最小的交换次数初值:另f[1][a[1]]=0,f[1][b[1]]=1,其他为inf#include<iostream>#include<cstdio>#include<cstring>#include<algorith...原创 2018-11-06 21:24:39 · 87 阅读 · 0 评论 -
luogu1736_创意吃鱼法_二维dp
题意简单来说,就是给你一个0/1矩阵,让你找这样一个正方形:一条对角线全是1,其他地方全是0,并使得这个矩阵的边长最大solution考虑维护一个s1[i][j]表示从(i,j)开始,往上连续0的长度,s2[i][j]表示向左的这样向左斜的就这样 f[i][j]=min(f[i-1][j-1],min(s1[i-1][j],s2[i][j-1]))+1;向右斜的同理code#i...原创 2018-11-06 23:18:02 · 244 阅读 · 0 评论 -
luogu1541_乌龟棋_四维dp
题意solution我们发现四种卡牌每种的张数不超过40,所以4种都可以放进状态里,40^4=2560000,但是再把现在走到哪一位i放进状态里,就炸了我们发现每种卡牌用了几个,a,b,c,d,现在的位置=a1+b2+c3+d4+1转移 if(a>0)f[a][b][c][d]=max(f[a][b][c][d],f[a-1][b][c][d]+s[1+pos]);...原创 2018-11-07 08:49:46 · 144 阅读 · 0 评论 -
luogu水题1280尼克的任务
https://www.luogu.org/problemnew/show/P1280思路:我们首先考虑状态,什么信息与题目有关呢?任务,时刻和最大空闲时间。考虑以任务和最大空闲时间作为状态,f[i]表示考虑到第i个任务的最大空闲时间,我们会发现这个状态难以转移,因为任务和任务之间不存在很强的子结构性质。所以我们来考虑以时刻和最大空闲时间作为状态,f[i]表示考虑到第i时刻的最大空闲时间。...原创 2018-11-07 09:14:38 · 111 阅读 · 0 评论 -
luogu1026_统计单词个数_区间dp
题意https://www.luogu.org/problemnew/show/P1026solution设f[i][j]表示1~i分成j分,最多的单词数预处理一个sum[i][j]数组,表示i~j包含的单词数预处理的时候需要注意一个顺序j从大到小枚举,i从j到1枚举那么sum[i][j]=sum[i+1][j],再看看从i开始有没有新的单词,有就++dp的时候就是区间dp,dp...原创 2018-11-07 12:45:06 · 124 阅读 · 0 评论