摘要: 题意:在一个n * m的地图里,有p个宝藏,每次只能向横纵坐标增加的方向走,问最少走几次能把宝藏都拿走。解法:按横坐标排序,纵坐标的一个不下降子序列就是一条合法路径,要求多少条不下降子序列可以覆盖所有点,这个问题可以转化为最长下降子序列的长度。代码:#include#include#include#... 阅读全文
posted @ 2015-02-16 21:39 露儿大人 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一个树,每个点有一个value,value的意义是去掉这个点之后所有连通分量中点最多的那个连通分量的点数,这棵树的重心为所有点value的最小值,求重心,及重心都有谁。解法:貌似是个树形dp,不过不太懂树形dp···学了一下也没太明白这题为啥是树形dp···觉得其实是深搜···嗯···随便... 阅读全文
posted @ 2015-02-16 19:47 露儿大人 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题意:36张扑克,平分成9摞,两张数字一样的可以拿走,每次随机拿两张,问能拿光的概率。解法:记忆化搜索,状态压缩。一开始我想在还没拿的时候概率是1,然后往全拿光推···样例过不去···后来觉得推反了,改成了深搜,模拟拿牌的过程,九摞牌的状态用9位五进制表示。代码:#include#include#i... 阅读全文
posted @ 2015-02-15 00:39 露儿大人 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 题意:求[A,B]内有多少个数,满足x % f(x) == 0。解法:数位DP。转化为ans = solve(b) - solve(a - 1)。设dp[i][sum][mod][r]表示长度为i,各位和为sum,模mod余r的数的个数。当在数字后面新添加一位j时,则有dp[i + 1][sum +... 阅读全文
posted @ 2015-02-11 19:29 露儿大人 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题意:一段DNA序列s,只包含字符ATGC,长度不超过15,求有多少种长度为n的DNA序列与s的最长公共子序列长度为0~len。 解法:状压dp。 LSC: if(a[i] == b[j]) dp[i][j] = dp[i - 1][j - 1] + 1; else dp[i][j] = max(d 阅读全文
posted @ 2015-02-09 12:15 露儿大人 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 题意:在一个n维坐标系中,坐标的范围是0到m - 1,如果两个点坐标只有一个维度的坐标不同则可以相互移动,给出p个点,问任意两个点之间路径为d的个数是多少,答案与p取模。解法:只需要考虑两个点之间不同的维度的个数,递推方程:f[i][j]表示第i步时维度不同个数为j的路径数,f[i][j] = f[... 阅读全文
posted @ 2015-02-06 15:34 露儿大人 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 虽然它出现在dp专场里···但是我第一反应是一道最短路题···不过幸好它出现在dp专场里···因为我不怎么会dijstra什么的···题意:一条河上有N+1对码头,每个相邻码头之间需要一定时间到达,每对码头之间也需要一定时间到达,如下图:给出起点码头和终点码头,问最短到达时间。解法:假设起点码头一定... 阅读全文
posted @ 2015-02-01 16:30 露儿大人 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 寒假开始了···但是做题没有结束嘤··· 然后是dp专场嘤··· 题意:背包问题,给出背包容量和物品对数,每对物品都有特殊的关系:第一种关系是两个物品都取有价值,若只取一个则失去价值;第二种是两个物品只能取一个,都取则失去价值;第三种是只有当第一个被取时第二个才能被取,但可以单独取第一个物品。 解法 阅读全文
posted @ 2015-02-01 11:29 露儿大人 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 以前做过的题···重新做一遍之后怎么做怎么wa···后来GG了···第二天看不知道为啥A了···难道我失忆了?题意:无向图,边有黑色和白色两种颜色,求是否存在一个生成树中白边的个数是斐波那契数。解法:并查集。对边按颜色进行排序,白边在前用并查集计算生成树中白边个数,再倒着算一遍,得到生成树的白边的最... 阅读全文
posted @ 2014-12-03 19:30 露儿大人 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 题意:给出整数T,P,求c(T,P) mod P。解法:用卢卡斯定理。 卢卡斯定理:解决c(n,m) mod p问题。Lucas(n,m,p)=c(n%p,m%p)*Lucas(n/p,m/p,p)。 本题m=p,所以Lucas(n,p,p)化简得(n/p)%p。 卢卡斯定理的证明... 阅读全文
posted @ 2014-11-16 21:50 露儿大人 阅读(162) 评论(0) 推荐(0) 编辑