dp
文章平均质量分 71
zxxxxzzz
这个作者很懒,什么都没留下…
展开
-
hdu 1505 City Game dp
题意:最大F子矩阵 * 3 每行处理出里(i,j)最左最有的不小于mat【i】【j】的数组,然后更新答案 #include #include #include #include #include #include #include #include #include #include #include ///cout << fixed << setprecision(原创 2015-07-26 21:49:04 · 295 阅读 · 0 评论 -
hdu 1257 最少拦截系统 dp
设dp【i】为第i套拦截系统的当前最小值,每次输出的时候看是否能更新所有的dp【i】,不行则说明需要加一套拦截系统 #include #include #include #include #include #include #include #include #include #include ///cout << fixed << setprecision(13) << (原创 2015-07-20 21:55:17 · 490 阅读 · 0 评论 -
VK Cup 2015 - Finals, online mirror F - Clique in the Divisibility Graph dp
题意:n个数中选出一些序列,使得序列中任意两个数x,y,x整除y或者y整除x。 设dp【i】表示值为i时序列中的最长长度,就可以从i的约数中转移过来了 #include #include #include #include #include #include #include #include #include #include #include ///cout <<原创 2015-08-01 22:07:42 · 351 阅读 · 0 评论 -
hdu 5389 Zero Escape dp
题意:n个数分成两堆,每堆的原根之和的原根分别要等于给出的AB,原根如:65536 是7, 6+5+5+3+6=25 然后2+5=7. 将其看成背包,则mod 9之后的那个值看成容量,做次背包就行了。 //#include #include #include #include #include #include #include #include #include原创 2015-08-14 21:26:18 · 338 阅读 · 0 评论 -
hdu 2577 How to Type dp
题意:通过按最少次键盘数打出要求的字符,详见样例。 设dp【i】【0】表示关闭Caps lock情况下的打第i个字符时最少次数,dp【i】【1】为开启状态下的最少次数, 则有小写情况下:dp【i】【0】 = min(dp【i-1】【0】+1(小写情况下直接打),dp【i-1】【1】+2(按住shirt再打,比开启关掉大写再打再开启大写要优)),大写反一下就行了。 #include #inc原创 2015-08-02 21:18:03 · 450 阅读 · 1 评论 -
hdu 2844 Coins dp
题意:价值m一下可达的背包情况有多少种。 混合背包模板。 #include #include #include #include #include #include #include #include #include #include #include ///cout << fixed << setprecision(13) << (double) x << endl;原创 2015-08-04 20:59:09 · 331 阅读 · 0 评论 -
hdu 2845 Beans dp
题意:n*m的格子取数,每次取x,y时,x+1和x-1这两行不能去,(x,y-1),(x,y+1)这两格不能取。求最后能取到的最大的值。 先对每行求最大不连续子段和,由于行数不能连续取,相等于再对列做一次求不连续子段和即可 #include #include #include #include #include #include #include #include #inclu原创 2015-08-04 21:34:32 · 334 阅读 · 0 评论 -
Codeforces Round #313 (Div. 1) C - Gerald and Giant Chess dp
C. Gerald and Giant Chess time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Giant chess is quite common in Geraldion. W原创 2015-07-24 16:18:11 · 421 阅读 · 0 评论 -
hdu 2870 Largest Submatrix 最大子矩阵
题意:wxyz分别可替换成对应的abc,求abc相同子矩阵的最大那个。 分别枚举abc然后跑最大子矩阵即可。 #include #include #include #include #include #include #include #include #include #include #include ///cout << fixed << setprecision(原创 2015-08-05 14:54:11 · 364 阅读 · 0 评论 -
hdu 2955 Robberies dp
题意:Roy抢银行,n个银行中每个银行有val【i】的钱,Roy在这个银行被抓的概率为p【i】,而Roy有一个安全线P,当Roy抢银行的安全程度在P以内使安全的,否则就会被抓。问Roy不被抓时最多能抢多少钱 //设dp【i】表示安全情况下偷i钱 的最大安全程度。在P以内是安全的,则在1-P要被抓,所以有dp【n】>=1-P。p【i】表示被抓的概率,则1-p【i】为安全的 那么可以得到dp[j]原创 2015-07-24 20:50:03 · 308 阅读 · 0 评论 -
hdu 1864 最大报销额 dp
题意略。把数据处理出来就是个裸背包。p:RE要注意把数组开到3000500左右即可。 #include #include #include #include #include #include #include #include #include #include ///cout << fixed << setprecision(13) << (double) x << en原创 2015-07-24 21:39:04 · 318 阅读 · 0 评论 -
hdu 1260 Tickets dp
题意:某售票可以一次卖出一张票,或者卖出两张连票,卖出票时需要消耗时间。问n个人买到票的最少时间。 设dp【i】【0】表示第i个人的票不和i-1一起买时消耗的最小时间,dp【i】【1】表示与i-1这个人买消耗的最小时间,则有dp[i][0] = min( dp[i-1][0], dp[i-1][1] ) + c[i]; dp[i][1] = dp[i-1][0] + d[i] - c[i-1];原创 2015-07-20 21:24:31 · 285 阅读 · 0 评论 -
hdu 1114 Piggy-Bank 完全背包
题意:给出每种货币的价值和重量,及储蓄罐里面货币的总重量,求货币价值的最小值 dp【i】表示重量为i的最小价值,初始化后跑一下完全背包即可 const int N = 10005; int dp[N], val[N], cost[N]; int n; int main() { int tot; for( scanf("%d", &tot); tot--; ) { int e, r原创 2015-07-20 11:19:30 · 365 阅读 · 0 评论 -
hdu 1087 Super Jumping! Jumping! Jumping!
题意:起点到终点的上升子序列里面的最大值。设dp【i】表示所求,则 dp[i] = max( dp[i], dp[j] + val[i] ); const int N = 1005; int dp[N], val[N]; int main() { int n; while( ~scanf("%d", &n) && n ) { for( int i = 1原创 2015-07-20 11:16:33 · 244 阅读 · 0 评论 -
hdu 1171 Big Event in HDU dp
题意:把物品分成价值尽量相同的两堆。 一个多重背包预处理,然后对容量为总价值一半炮一发01背包即可 #include #include #include #include #include #include #include #include #include #include #include ///cout << fixed << setprecision(13) <原创 2015-07-27 15:52:35 · 327 阅读 · 0 评论 -
hdu 2571 命运 dp
简单dp, 走格子,注意初始化 #include #include #include #include #include #include #include #include #include #include #include ///cout << fixed << setprecision(13) << (double) x << endl; #include #in原创 2015-07-27 14:53:11 · 290 阅读 · 0 评论 -
hdu 2159 FATE dp
设dp【i】【j】表示还有i忍耐度和j只怪可以杀时,获得的最大经验。由于怪物可以无限杀,做一下完全背包即可。最后扫一边二维dp求答案。 #include #include #include #include #include #include #include #include #include #include #include ///cout << fixed << s原创 2015-07-27 20:32:12 · 307 阅读 · 0 评论 -
hdu 1203 I NEED A OFFER! dp
设dp【i】为花费i,一个offer都没收到的最小概率,跑一下01背包最后1-dp【m】即可 #include #include #include #include #include #include #include #include #include #include #include ///cout << fixed << setprecision(13) << (d原创 2015-07-27 16:37:06 · 276 阅读 · 0 评论 -
hdu 1074 Doing Homework 状压dp
题意:给出n门课作业的deadline和完成所需时间,没门课超deadline一天扣一分,求出一种方案使得被扣的分最少。 n=15,所以枚举每种课上与不上的状态,dp【i】则表示i这种情况下(例如3表示只有第一第二门课完成)被扣最少的分。dp【i】中肯定有些作业使完成了的,假如包含课j,则dp【i - (1 #include #include #include #include #in原创 2015-07-19 22:05:18 · 295 阅读 · 0 评论 -
zznu 1903: Alex and magic 背包
题目描述 Alex is a great magic-user, he can use his magic to attack monster, Today he has learn N number of magic, The i magic need Vi magic power and it can attack Wi damage.Alex's magic power is l原创 2015-07-19 19:50:19 · 362 阅读 · 0 评论 -
hdu 5375 Gray code dp
题意:长度为n的01串(?可以表示0或1),表示成的二进制,转成格雷码,每个位置有一个分值,若格雷码的i位置为1则可以得到val【i】分,求最多能拿多少分。 设dp【i】【0】为i位置为0时的最高分,dp【i】【1】为i位置为1时的最高分 ,然后分类判断一下即可。 #include using namespace std; typedef long long ll; const int N原创 2015-08-12 16:16:25 · 344 阅读 · 0 评论 -
hdu Mahjong tree 树dp
题意:给出一棵有根树编号1~n,1为根,树上放n个麻将,编号1~n。要求是对于每个节点放置的麻将编号,这颗树的子节点放置编号必须连续,每一颗子树的放置编号也必须连续,最后求方案数%mod(1e9+7) 通过画一下就可以知道,对于每个节点来说,设它的子树大小(节点数量)为sz,那么sz>=2的子树个数不能超过2,否则方案数则一定为0.这样的话再处理一下sz为1的子树数量,最后统计一下每个节点的方案原创 2015-08-12 21:24:48 · 386 阅读 · 0 评论 -
hdu 1160 FatMouse's Speed dp记录路径
题意:给出一组老鼠的大小和速度,找出最大的一组老鼠,使得大小在严格增大的同时速度严格减小。 设dp【i】为第i只老鼠在第i组时,组内的老鼠数量最多,那么求一发最大下降子序列即可 #include #include #include #include #include #include #include #include #include #include ///cout <原创 2015-07-21 11:45:21 · 283 阅读 · 0 评论 -
hdu 1178 免费馅饼
题意:0~10的位置每秒掉馅饼,为最开始位置为5,每秒最多移动1,最后最多能接到多少馅饼。 设dp【i】【j】表示第i秒位置j接到的最多馅饼数量。 #include #include #include #include #include #include #include #include #include #include ///cout << fixed << setp原创 2015-07-20 20:25:47 · 297 阅读 · 0 评论 -
hdu 5410 CRB and His Birthday 01完全混合背包
题意:m块钱n个物品,第i个物品需要买了k个需要k*w【i】块钱,得到A【i】*k+B【i】个糖果,问最多能得到多少糖果 将第i个物品拆成两份,花费都为w【i】,第一份价值为A【i】+B【i】,只能取一次,第二份为A【i】,可以去无限次,跑下混合背包即可 #include #include #include #include #include #include #include原创 2015-09-07 13:32:04 · 320 阅读 · 0 评论