动态规划
文章平均质量分 85
liyunlong41
你必须非常努力,才能看起来毫不费力。
展开
-
hihocoder#1037 : 数字三角形 经典简单动态规划
http://hihocoder.com/problemset/problem/1037#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define mem(a,x) memset(a,x,size原创 2015-07-14 12:53:34 · 435 阅读 · 0 评论 -
ural 1009 记忆化搜索
1009. K-based NumbersTime limit: 1.0 secondMemory limit: 64 MBLet’s consider K-based numbers, containing exactlyN digits. We define a number to be valid if its K-based notation doesn’t con原创 2015-10-28 23:17:01 · 503 阅读 · 0 评论 -
动态规划之01背包
#1038 : 01背包时间限制:20000ms单点时限:1000ms内存限制:256MB描述且说上一周的故事里,小Hi和小Ho费劲心思终于拿到了茫茫多的奖券!而现在,终于到了小Ho领取奖励的时刻了!小Ho现在手上有M张奖券,而奖品区有N件奖品,分别标号为1到N,其中第i件奖品需要need(i)张奖券进行兑换,同时也只能兑换一次,为了使得原创 2015-12-29 23:01:52 · 512 阅读 · 0 评论 -
poj 3254 状态压缩dp 放牧~
Corn FieldsTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 10821 Accepted: 5668DescriptionFarmer John has purchased a lush new rectangular pasture com原创 2015-12-19 21:35:21 · 367 阅读 · 0 评论 -
hdu 1709 求天平不能称重的重量 动态规划
给定一个天平和n个砝码,每个砝码都有一个重量,求出从1到这些砝码的总和之间不能被天平表示的重量。天平可以两端放砝码。动态规划做法,看网上都是母函数,真心不懂。。dp[i]如果是0表示这些砝码不能称重i重量,如果是1表示能称重i重量。对于每个砝码,假设当前砝码重量是b[i],那么j从最大值开始,减小到b[i],如果存在一个dp[j-b[i]]为1,说明当前的j能被组成。原创 2015-08-12 11:21:00 · 748 阅读 · 0 评论 -
poj1742 动态规划 经典多重背包
有n种不同面值的硬币,面值各为A1,A2,A3。。AN,数量各为C1,C2,C3,,,,,CN。给定数m,问这些硬币能组成小于等于m的数中的哪些数,输出这些数的数目。开始想的是从1到m判断每个数是不是能被这些硬币组成,但是判断每个硬币的数量的时候出现了问题,难以统计每种硬币使用的数目,后来去网上搜了搜,发现可以以每种硬币为开始,把每种硬币能组成的数记录下来,这样在统计每种硬币数目的原创 2015-08-03 11:23:43 · 908 阅读 · 0 评论 -
lightoj 1079 概率计算+01背包
1079 - Just another Robbery PDF (English)StatisticsForumTime Limit: 4 second(s)Memory Limit: 32 MBAs Harry Potter series is over, Harry has原创 2016-03-29 23:20:17 · 435 阅读 · 0 评论 -
lightoj 1030 概率dp
1030 - Discovering Gold PDF (English)StatisticsForumTime Limit: 2 second(s)Memory Limit: 32 MBYou are in a cave, a long cave! The cave can b原创 2016-03-29 23:34:46 · 292 阅读 · 0 评论 -
lightoj 1064 动态规划
1064 - Throwing Dice PDF (English)StatisticsForumTime Limit: 2 second(s)Memory Limit: 32 MBn common cubic dice are thrown. What is theprobab原创 2016-03-27 22:53:49 · 330 阅读 · 0 评论 -
codeforces (G) The Debut Album dp+滚动数组
点击打开链接题意: 找长度为n(n分析:以前做过类似的题目, 用的是记忆化的方式, dfs(pos,last,cnt) 分别是位置, 上一次选的元素, 上一个元素已经选了多少个, 然而这样是会超内存的, 后来知道改成递推的方式是可以用滚动数组的, 又学到了新姿势.#include#define inf 0x3f3f3f3f#define mem(a,x)原创 2016-05-25 10:53:25 · 408 阅读 · 0 评论 -
codeforces 518D. Ilya and Escalator 概率dp
D. Ilya and Escalatortime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputIlya got tired of sports programming,原创 2016-05-25 15:03:31 · 390 阅读 · 0 评论 -
codeforces 339C 记忆化搜索
C. Xenia and Weightstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputXenia has a set of weights and pan sca原创 2016-05-13 18:33:25 · 645 阅读 · 0 评论 -
codeforces 519D dp
D. A and B and Interesting Substringstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputA and B are preparing原创 2016-05-13 18:51:17 · 370 阅读 · 0 评论 -
codeforces 2B 动态规划
B. The least round waytime limit per test5 secondsmemory limit per test64 megabytesinputstandard inputoutputstandard outputThere is a square matrix n × n, consi原创 2016-05-16 13:37:51 · 1347 阅读 · 0 评论 -
codeforces 276D 贪心
D. Little Girl and Maximum XORtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputA little girl loves problems原创 2016-05-16 13:50:49 · 650 阅读 · 0 评论 -
codeforces E. Trains and Statistic 线段树优化dp
E. Trains and Statistictime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputVasya commutes by train every day.原创 2016-05-18 11:18:50 · 648 阅读 · 0 评论 -
hdu 5691 Sitting in Line 状态压缩dp
Sitting in LineTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 580 Accepted Submission(s): 264Problem Description度度熊是他同时代中最伟大的原创 2016-05-23 22:35:54 · 1368 阅读 · 1 评论 -
codeforces 560E Lucas定理+dp
E. Gerald and Giant Chesstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputGiant chess is quite common in Ge原创 2016-08-06 22:38:45 · 706 阅读 · 0 评论 -
动态规划_ 选出一些数相加,问最后是m的倍数的方案有多少种
题意:给定n个数,让你判断是否能从中选出一些数相加,使得他们的和能够整除m;分析:这类dp状态转移感觉比较好想,可以从第一项开始每次都把他的结果记录下来,然后轮到后面某一项的时候,直接利用前面的结果进行状态转移。注意记录结果的时候不能直接更新dp数组,因为这样会导致这一项被重复利用。可以享用数组保存下来,后来在更新。http://codeforces.com/contest/577原创 2015-09-24 15:29:08 · 1906 阅读 · 0 评论 -
hdu 5119 dp
Happy Matt FriendsTime Limit: 6000/6000 MS (Java/Others) Memory Limit: 510000/510000 K (Java/Others)Total Submission(s): 1349 Accepted Submission(s): 534Problem DescriptionMatt has N原创 2015-09-17 22:59:16 · 345 阅读 · 0 评论 -
hdu 3652 数位dp
直接套的模板#include#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define mem(a,x) memset(a,x,sizeof(a))using namespace std原创 2015-09-12 23:08:57 · 315 阅读 · 0 评论 -
uva 437 动态规划
给定一些立方体,每种立方体有长宽高三个属性,可以任意变换摆放姿势,每种立方体有无限个,要把其中的一些摆起来,求最大的高度。要求在上面的立方体必须底部的长宽都小于在下面的立方体的顶部的长宽。可以把一个立方体当成三个存到数组中,x,y,z轮换着当高,剩下的两个随便当长或者宽就行。先把他们按照面积从小到大排序,因为面积大的一定在面积小的下面,这样就避免漏掉一些。然后就是类似于求最长上升子序列原创 2015-08-08 12:40:21 · 432 阅读 · 0 评论 -
uva 11584 动态规划
给定一串字符串,看最少能把它分成几个回文字符串。SampleInput3racecarfastcaraaadbccbSampleOutput173dp[i]=min(dp[j]+1);(i~j为回文)。开始一看数据是1000,没敢写,去网上看了看都是这样做的,只好也跟着这样做,本以为是O(n^3)的复杂度,现在看来原创 2015-08-08 10:58:10 · 422 阅读 · 0 评论 -
hdu 2955 动态规划
RobberiesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 16258 Accepted Submission(s): 5954Problem DescriptionThe aspiring Roy th原创 2015-08-08 10:45:47 · 353 阅读 · 0 评论 -
uva 116 数塔 动态规划
横着的数塔,从左往右走,可以走右上,右,右下三个方向,最后一行往右下走可以穿越到第一行,第一行往右上走可以穿越到最后一行。最后要求输出走的路径以及路径和的最小值,如果存在多种路径,输出字典序最小的那个。输出路径的字典序最小,要从右往左加,加的时候记录路径,这样可以使得路径的字典序最小,如果从左往右加的话最后一列如果有多个相同的最小值,不能确定那一条路径的字典序最小,他们可能是按照不同的路径原创 2015-08-08 12:15:16 · 359 阅读 · 0 评论 -
poj 2229 动态规划
SumsetsTime Limit: 2000MS Memory Limit: 200000KTotal Submissions: 14447 Accepted: 5763DescriptionFarmer John commanded his cows to search for different sets of nu原创 2015-08-10 10:26:45 · 369 阅读 · 0 评论 -
hdu 1028 对某个数n的m划分数
Ignatius and the Princess IIITime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 15687 Accepted Submission(s): 11063Problem Description原创 2015-08-12 10:34:36 · 453 阅读 · 0 评论 -
hdu 1085 面值为1.2.5的硬币不能组成的最小面值
给定面值为1、2、5的硬币的数量,求不能组成的钱的最小面值。母函数不会,用dp做的,其实就是多重背包。#include#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define me原创 2015-08-12 11:25:35 · 614 阅读 · 0 评论 -
hdu1087 动态规划
Super Jumping! Jumping! Jumping!Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 27470 Accepted Submission(s): 12188Problem Descript原创 2015-08-01 10:16:57 · 294 阅读 · 0 评论 -
poj3616 动态规划
跟hdu1087很像,感觉像一个类型的题目#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define mem(a,x) memset(a,x,sizeof(a))using names原创 2015-08-01 10:23:42 · 665 阅读 · 0 评论 -
poj2385 很好的动态规划
以前做的/* poj2385 dp[i][j]表示第i分钟移动j次最多苹果数* 注意初始化不移动时候 呆在第一棵树下能吃到的苹果数* 第一分钟可以移动到第二颗树下吃苹果* j的值的奇偶性能判断牛的位置* 能吃到的话可能从另一棵树来,也可能是本身就在这棵树下* 不能吃到的话一定是本身就在这棵树下(等他后面掉呢)* 不能吃到的话还用从另一棵树过来?* 最后找小于等于原创 2015-08-01 10:14:04 · 362 阅读 · 0 评论 -
poj 3280 字符串上的动态规划
添加或者删除一些字母,使这个字符串变成回文串。每个字母添加和删除的代价不一样。问最小代价。看别人的思路,在字符串两端删除和添加字母是等价的,因此只需要保留删除和添加中最小的一个对字符串进行修改就行。另外设置dp[i][j]表示从i到j的变成回文串的最小代价,那么会有:dp[i][j]=dp[i+1][j-1](a[i]==a[j])dp[i][j]=max(dp[i+1][j]+w原创 2015-08-01 10:33:20 · 423 阅读 · 0 评论 -
poj 3181 动态规划
Dollar DayzTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 4840 Accepted: 1842DescriptionFarmer John goes to Dollar Days at The Cow Store and discovers原创 2015-08-03 14:05:25 · 368 阅读 · 0 评论 -
hdu 5339 动态规划或者dfs
UntitledTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 751 Accepted Submission(s): 403Problem DescriptionThere is an integer a原创 2015-08-03 10:08:59 · 422 阅读 · 0 评论 -
hdu 1081 最大子矩阵和
#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define mem(a,x) memset(a,x,sizeof(a))using namespace std;typedef long lon原创 2015-08-04 20:44:14 · 333 阅读 · 0 评论 -
poj 1065 贪心或者动态规划
Wooden SticksTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 19566 Accepted: 8255DescriptionThere is a pile of n wooden sticks. The length and weight of原创 2015-08-05 16:53:30 · 471 阅读 · 0 评论 -
uva 10003 动态规划
给定一个长度为len的木板,要在n个位置处切开,每次切开的代价是这块木板的长度,求最小的代价。其实切木板跟合并木板是等价的。。开始以为是简单的贪心,便写了一个优先队列的贪心算法,果断就给wrong了。后来想到不能随便取啊,得是相邻的才能合并啊,果断写了合并相邻木板的动态规划才算给过了。#include#include#include#include#includ原创 2015-08-08 11:10:25 · 427 阅读 · 0 评论 -
uva 1626 添加最少的括号使得括号匹配
添加最少的括号使得括号匹配,并将括号匹配后的结果输出,可能有空串,所以输入的时候要用gets();#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define mem(a,x) mems原创 2015-08-08 12:24:06 · 961 阅读 · 0 评论 -
HDU 5787 数位dp
K-wolf NumberTime Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1041 Accepted Submission(s): 394Problem DescriptionAlice thinks an i原创 2016-08-13 16:42:20 · 426 阅读 · 0 评论