随笔分类 -  dp

摘要:题意:给你一颗树,然后在数的结点上进行标记,一个结点被标记之后,连接它的边也被标记,最少标记几个点可以把所有的边标记。思路:树形dp,和刘汝佳白书70页放置街灯一样。dp[u][1]表示在u结点标记,dp[u][0]表示在u结点不标记。 1 #include 2 #include 3 #incl... 阅读全文
posted @ 2015-04-02 16:39 null1019 阅读(184) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/447/problem/C题意:给你n个数的序列,然后让你改变其中的一个数,求得最长上升连续序列的长度值。思路:先从左边开始求出连续递增序列的值记录在l数组,然后从右边开始再求一遍连续递增序列的值记录在r数组中,然后从2-n-1位置遍历,改... 阅读全文
posted @ 2015-03-13 20:52 null1019 阅读(135) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/448/problem/C题意:给你n宽度为1,高度为ai的木板,然后用刷子刷颜色,可以横着刷、刷着刷,问最少刷多少次可以全部刷上颜色。思路:dp[i][j] 表示在第i列以后的木板都已刷完且第j列的木板是横着刷的,最少需要的次数。如果a[... 阅读全文
posted @ 2015-03-13 10:57 null1019 阅读(237) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5067思路:问题可以转化成:从某一点出发,遍历网格上的一些点,每个点至少访问一次需要的最小时间是多少。这就是经典的旅行商问题,考虑到我们必须要遍历的点只有不到10个,可以用状态压缩解决。dp[i][j]表示i状态的... 阅读全文
posted @ 2015-03-10 16:01 null1019 阅读(170) 评论(0) 推荐(0)
摘要:思路:dp[i][j]表示和为i,最大值为j的方案数。 1 #include 2 #include 3 #include 4 #include 5 #define maxn 100010 6 #define ll long long 7 using namespace std; 8 cons... 阅读全文
posted @ 2015-03-06 16:06 null1019 阅读(181) 评论(0) 推荐(0)
摘要:题意:给你n和k,然后找出b1, b2, ..., bl(1 ≤ b1 ≤ b2 ≤ ... ≤ bl ≤ n),并且对所有的bi+1%bi==0,问有多少这样的序列?思路:dp[i][j] 表示长度为i,以j为结尾有多少。dp【i】【j】+=dp【i-1】【s】,j%s==0; 1 #includ... 阅读全文
posted @ 2015-02-06 08:22 null1019 阅读(274) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/408/problem/D题意:有一排房间每个房间有两扇门,一扇通往第i+1个房间,另一扇通往第p[i]个房间,(p[i] 2 #include 3 #include 4 #define maxn 100010 5 using name... 阅读全文
posted @ 2015-02-05 16:02 null1019 阅读(222) 评论(0) 推荐(0)
摘要:题意:就是挖地雷,给你一个字符串,‘*’代表地雷,‘1’代表在它的周围有1个地雷,‘2’代表在左右都有个地雷,‘?’代表不确定是不是地雷,可以是1,2,*,问你最后有几种方式确定所有的的地雷。思路:dp[i][0] 代表次位置为0,dp[i][1]代表左边有地雷,dp[i][2]代表右边有地雷,dp... 阅读全文
posted @ 2015-02-04 19:12 null1019 阅读(169) 评论(0) 推荐(0)
摘要:http://codeforces.com/problemset/problem/399/D题意:给出n和m,表示在一个n*n的平面上有n*n个方格,其中有m块已经涂色。现在随机选中一块进行涂色(如果已经涂色跳过,也消耗时间),消耗1个步骤。终止条件为每行每列都有至少有一块瓷砖被涂色。问说涂成满意的... 阅读全文
posted @ 2015-01-29 20:39 null1019 阅读(274) 评论(0) 推荐(0)
摘要:题意:有n个灯,每个灯有一个照亮的角度,现在从点(l,0)走到点(r,0),问这个人若一直被灯照着能最多走多远?思路;状压dp,然后通过向量旋转求出点(dp[i[,0)与灯的坐标(p[j].x,p[j].y)形成的向量然后旋转角度p[j].a,得到旋转之后的在x坐标轴上的点,然后与dp[i|(1 2... 阅读全文
posted @ 2015-01-22 17:36 null1019 阅读(158) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5074题意:给你一个的矩阵score[i][j],然后给你一个数列,数列中有一些是-1,代表这个数可以换成1~m的任意一个数,然后求的最大值。思路:二维dp,dp[i][j]代表i位置的数为j的最大和。 通过前面求... 阅读全文
posted @ 2015-01-19 11:26 null1019 阅读(148) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5119题意:有n个数,然后从中挑选任意多的数进行异或,问异或出的值大于等于M的方案数多少?思路:转移方程f[i][j]=f[i-1][j]+f[i-1][j^a[i]]. 可以枚举这个值,对每个状态,来源有两个——... 阅读全文
posted @ 2015-01-16 20:34 null1019 阅读(234) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5135题意:给你N个木棍的长度,然后让你组成三角形,问你组成的三角形的和最大是多少?思路:先求出可以组成的所有的三角形,然后状压dp就可以。求所有的三角形也可以用状压,也可以三重循环求。 1 #include 2... 阅读全文
posted @ 2015-01-16 08:51 null1019 阅读(209) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5151题意:一共有N个椅子,然后有N个学生依次去坐,满足下面三个条件不能坐上去,1:这个椅子旁边有左椅子也有右椅子,2:椅子旁边都有人坐了,3:椅子旁边的椅子颜色不一样。问如果所有人都坐上去有多少情况。dp[i][... 阅读全文
posted @ 2015-01-01 17:42 null1019 阅读(203) 评论(0) 推荐(0)
摘要:题意:求a数组的LIS,但是加了一个条件,为了LIS最大 b[i] a[i]可以交换。最多交换m次;思路:我们令dp[i][j][l]表示i在最长上升子序列中,已经损失j点能量,第i个人转换了ai和bi的最长上升子序列的数目,可以得到方程 dp[i][j][0]=max{dp[k][j][0](a[... 阅读全文
posted @ 2014-12-03 14:52 null1019 阅读(179) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/374/problem/C记忆化搜索,题意:求按照要求可以记过名字多少次,如果次数为无穷大,输出Poor Inna!,如果不经过一次输出Poor Dima!,否则输出输出次数。 1 #include 2 #include 3 #incl... 阅读全文
posted @ 2014-11-08 16:54 null1019 阅读(264) 评论(0) 推荐(0)
摘要:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5264题意:给出n道题目以及每一道题目不同时间做的兴趣值,让你求出所有做题顺序中兴趣值大于等于m的比例。用一个分数表示。状压dp。 枚举每一个状态,用二进制表示。dp[i][j]表... 阅读全文
posted @ 2014-11-02 16:23 null1019 阅读(360) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5087题意求第二长的上升序列。 在求最长上升序列的同时加上一个数组,来记录以i为结尾的有多少条序列。如果n+1为结尾有多条,就输出dp[n+1]-1;否则在这个最长的序列上每一个节点是不是都是num[i]==1,如... 阅读全文
posted @ 2014-11-01 22:53 null1019 阅读(229) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4545 1 #include 2 #include 3 #include 4 #define maxn 2000 5 using namespace std; 6 7 char s1[maxn],s2[ma... 阅读全文
posted @ 2014-10-23 20:09 null1019 阅读(123) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4507用dp结构体里面存有符合要求的个数cnt,各位数和的sum1,符合要求的数的平方和sum2三个值。在维护sum2时需要用到sum1和cnt两个值。数位dp 1 #include 2 #include 3 ... 阅读全文
posted @ 2014-10-22 23:23 null1019 阅读(219) 评论(0) 推荐(0)