随笔分类 -  dp

摘要:一个数字是Balanced Numbers,当且仅当组成这个数字的数,奇数出现偶数次,偶数出现奇数次一下子就相到了三进制状压,数组开小了,一直wa,都不报re,使用记忆化搜索,dp[i][s] 表示长度为i,状态为s,时,满足条件的balance number的个数#include #include... 阅读全文
posted @ 2015-08-09 10:28 justPassBy 阅读(266) 评论(0) 推荐(0)
摘要:codeforces55D查询给定区间内的beautiful number。 一个数字是beautiful number当且仅当能被自己的各个数字不为0的位整除。这个dp的状态还是挺难想的。一个数能被自己的各个位整除,那么必须是这些位的最小公倍数的倍数。那么可以想到的一个状态是dp[i][j][k]... 阅读全文
posted @ 2015-08-08 08:34 justPassBy 阅读(240) 评论(0) 推荐(0)
摘要:一直不明白为什么概率是正推,期望是逆推。 现在题目做多了,慢慢好像有点明白了poj2096收集bug, 有n个种类的bug,和s个子系统。 每找到一个bug需要一天。要我我们求找到n个种类的bug,且在每个系统中都找到一个bug的期望天数设dp[i][j] 为找到i个种类的bug和在j个系统中找到b... 阅读全文
posted @ 2015-07-18 17:44 justPassBy 阅读(524) 评论(0) 推荐(0)
摘要:hdu2457给定n个模式串, 和一个文本串问如果修改最少的字符串使得文本串不包含模式串,输出最少的次数,如果不能修改成功,则输出-1dp[i][j] 表示长度为i的字符串, 到达状态j(Trie图中的结点)所需要修改的最少次数那么dp[0->n][0->size] = INF , dp[0][ro... 阅读全文
posted @ 2015-06-22 21:43 justPassBy 阅读(345) 评论(0) 推荐(0)
摘要:单调队列,就是队列里的元素是单调递增或者单调递减的。那就有人问了,这和优先队列有什么区别。单调队列里的单调递增(递减)不止是值的单调递增(递减),下标也是单调递增的。我们来看单调队列怎么维护的,就知道单调队列是什么东西了。这里以单调递增队列为例。将数组a[1->n]里面的元素依次入队列。 如果要入... 阅读全文
posted @ 2015-05-20 22:08 justPassBy 阅读(440) 评论(0) 推荐(0)
摘要:求概率uva11021http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1962给定n,k,m有k个麻雀,每只活一天就会死,临死之前生出i只麻雀的概率为pi ,... 阅读全文
posted @ 2015-05-04 16:13 justPassBy 阅读(244) 评论(0) 推荐(0)
摘要:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=114&problem=1406&mosmsg=Submission+received+with+ID+15... 阅读全文
posted @ 2015-04-27 18:54 justPassBy 阅读(252) 评论(0) 推荐(0)
摘要:给我们n个硬币每个硬币都有它的面值,要我我们分为两堆硬币,使得硬币的差值最小我们可以dp计算出所有的差值,然后从小到大枚举差值,如果差值存在,就输出dp[i][j] 表示对于前i件物品能达到差值j状态转移方程为 if(dp[i-1][j]==1) dp[i][j] = 1(不选第i个物品),dp[i... 阅读全文
posted @ 2015-04-27 17:00 justPassBy 阅读(257) 评论(0) 推荐(0)
摘要:上周的3*N的骨牌,因为状态只有8中,所以我们可以手算出状态转移的矩阵但是这周是k*N,状态矩阵不好手算,都是我们改成用程序自动生成一个状态转移的矩阵就行了,然后用这个矩阵进行快速幂即可枚举枚举上下两行的状态,然后判断上一行的状态能不能转移为这一行的状态如果上一行的某个位置为0,那么这一行的该位置必... 阅读全文
posted @ 2015-04-26 15:13 justPassBy 阅读(272) 评论(0) 推荐(0)
摘要:http://hihocoder.com/contest/hiho42/problem/1给定一个n,问我们3*n的矩阵有多少种覆盖的方法第41周做的骨牌覆盖是2*n的,状态转移方程是dp[i] = dp[i-1] + dp[i-2],递推数列可以用矩阵快速幂来加速计算我们可以用状态dp来做这一题,... 阅读全文
posted @ 2015-04-21 22:08 justPassBy 阅读(341) 评论(0) 推荐(0)
摘要:给定n个点(n是偶数)使得两个点两两配对,最后总的距离和最小。用是表示集合,那么dp[s]表示集合s配对后的最小距离和 ,状态转换方程为表示集合中任意拿两个元素配对,然后转移为更小的两个集合的点集配对。i=min(s)表示i为集合中的第一个元素,因为第一个元素肯定要配对的,所以找到集合中的第一个元素... 阅读全文
posted @ 2015-04-21 16:45 justPassBy 阅读(839) 评论(0) 推荐(0)
摘要:hdu2242http://acm.hdu.edu.cn/showproblem.php?pid=2242给定n,m表示n个点,m条边每个点有个权值问我们删除两某条边(割边)后将图分为两个部分,要使得两个部分的权值之差最小这题的弱化版本是在一棵树上删除某条边后后将图分为两个部分,要使得两个部分的权值... 阅读全文
posted @ 2015-04-20 18:40 justPassBy 阅读(229) 评论(0) 推荐(0)
摘要:hdu1520http://acm.hdu.edu.cn/showproblem.php?pid=1520题意是给定一棵树,每个结点有一个价值,要我们选择任意个结点使得总价值最大,规则是如果父亲结点被选了,那么儿子结点不可以被选,但是儿子的儿子可以被选本来学搜索的时候找到这题搜索题,然后用搜索做的 ... 阅读全文
posted @ 2015-04-19 14:03 justPassBy 阅读(230) 评论(0) 推荐(0)
摘要:给定n,m表示n个城堡,我们可以选择攻占m个城堡。要使得价值最大接下来n行 a b, 第i行的a b,表示攻占第i个城堡的价值为b,但需要先攻占第a个城堡如果有多个a=0的点,那么就不是一棵树,但是我们可以建立一个根结点0,让根结点指向那些a=0的点, 同时m++,因为更结点必须被占据,占据一个结... 阅读全文
posted @ 2015-04-18 18:41 justPassBy 阅读(304) 评论(0) 推荐(0)
摘要:hdu1011http://acm.hdu.edu.cn/showproblem.php?pid=1011给定n个洞穴和m个士兵(每个士兵能消灭20个bugs)然后给定每个洞穴的bugs数量(背包的费用)和brain的数量(背包的价值)然后给定n-1条边,使得n个洞穴形成一课树问能取得的brain数... 阅读全文
posted @ 2015-04-18 15:05 justPassBy 阅读(629) 评论(0) 推荐(0)
摘要:由于棋盘只有两行,所以如果第i列的骨牌竖着放,那么就转移为第1列到第i-1列骨牌有多少种摆法如果第一行第i列骨牌横着放,那么第二行第i列也要横着放,那么就转移为了第1列到第i-2列骨牌有多少种方法dp[i] = dp[i-1] + dp[i-2],但是列数太多了。 这种递推的算式可以用矩阵快速幂来优... 阅读全文
posted @ 2015-04-17 16:47 justPassBy 阅读(308) 评论(0) 推荐(0)
摘要:hdu 2196http://acm.hdu.edu.cn/showproblem.php?pid=2196input5//5个结点1 1//表示结点2到结点1有一条权值为1的边2 1//表示结点3到结点2有一条权值为1的边3 11 1要我们求从任意结点出发的最长路径。思路:一棵树上从某个结点出发的... 阅读全文
posted @ 2015-04-15 17:12 justPassBy 阅读(255) 评论(0) 推荐(0)
摘要:题目给定2个序列,要我们求LCS,但是序列的长度最长是250*250, LCS的时间复杂度是O(N*N),所以无法解决我们可以第一个序列的数字,按位置,映射为1、2、3、4、5、6、7、8、9那么就会得到一个映射函数,将第二个序列,映射为一个新的序列那么就相当于用一个映射函数将两个字符串映射为两个新... 阅读全文
posted @ 2015-04-06 11:14 justPassBy 阅读(390) 评论(0) 推荐(0)
摘要:题目的意思是给定k个盒子,每个盒子的维度有n dimension问最多有多少个盒子能够依次嵌套但是这个嵌套的规则有点特殊,两个盒子,D = (d1,d2,...dn) ,E = (e1,e2...en) 只要盒子D的任意全排列,小于盒子E,那么就说明盒子D能放入盒子E中,其实就是将两个盒子的维度排序... 阅读全文
posted @ 2015-04-03 21:14 justPassBy 阅读(368) 评论(0) 推荐(0)
摘要:hdu2167 http://acm.hdu.edu.cn/showproblem.php?pid=2167给定一个N*N的板子,里面有N*N个数字,选中一些数字,使得和最大要求任意两个选中的数字不相邻,相邻包括上下,左右和对角线相邻。由于N 2 #include 3 #include 4 #i... 阅读全文
posted @ 2015-03-04 20:59 justPassBy 阅读(208) 评论(0) 推荐(0)