
算法竞赛-动态规划
文章平均质量分 63
算法竞赛-动态规划
Jamence
AI从业者,负责过多模态大模型、超大规模分类、聚类、检索等任务;发表过10+ CCF A/B等论文
展开
-
51Nod 1007 正整数分组
将一堆正整数分为2组,要求2组的和相差最小。例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的。Input第1行:一个数N,N为正整数的数量。第2 - N+1行,N个正整数。(N Output输出这个最小差Input示例512345Output示例1原创 2017-09-13 20:00:19 · 294 阅读 · 0 评论 -
hdu1248寒冰王座(完全背包)
不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票(记住,只有一张钞票),为了防止自己在战斗中频繁的死掉,他决定给自己买一些道具,于是他来到了地精商店前. 死亡骑士:"我要买道具!" 地精商人:"我们这里有三种道具,血瓶150块一个,魔法药200块一个,无敌药水350块一个." 死亡骑士:"好的,给我一个血瓶." 说完他掏出那张N元的大钞递给地精商人. 地精原创 2017-11-25 09:27:16 · 303 阅读 · 0 评论 -
hdu 动态规划题集
1.Robberies 连接 :http://acm.hdu.edu.cn/showproblem.PHP?pid=2955 背包;第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢多少钱 最脑残的是把总的概率以为是抢N家银行的概率之和… 把状态转移方程写成了f[j]=max{f[j],f[j-q[i].v]+q[i].money}(f[j转载 2017-07-30 15:20:37 · 1051 阅读 · 0 评论 -
hdu3555 Bomb(数位dp)
BombTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submission(s): 19496 Accepted Submission(s): 7222Problem DescriptionThe counter-terrori原创 2017-08-19 21:24:59 · 229 阅读 · 0 评论 -
Windy数(数位dp)
Description我定义了一种NO数。不含前导零且相邻两个数位之差至少为2的正整数被称为NO数。我想知道,在l和r之间,包括A和B,总共有多少个NO数?特别的,1~9都是NO数FormatInput两个整数,l r(1Output一个整数,NO数的个数Sample 1Input1 15Output原创 2017-08-29 21:29:14 · 1010 阅读 · 0 评论 -
背包之01背包、完全背包、多重背包详解
背包之01背包、完全背包、多重背包详解背包之01背包、完全背包、多重背包详解原博客:http://www.wutianqi.com/?p=539首先说下动态规划,动态规划这东西就和递归一样,只能找局部关系,若想全部列出来,是很难的,比如汉诺塔。你可以说先把除最后一层的其他所有层都移动到2,再把最后一层移动到3,最后再把其余的从2移动到3,这是一个直观的关系,但是想列转载 2017-07-28 13:36:00 · 261 阅读 · 0 评论 -
hdu2602(01背包)
HDU_2602 Bone CollectorTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 49986 Accepted Submission(s): 20965Problem Descrip原创 2017-08-19 16:41:27 · 291 阅读 · 0 评论 -
hdu2955(01背包)
HDU_2955 RobberiesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 20096 Accepted Submission(s): 7443Problem Description原创 2017-08-19 17:14:41 · 306 阅读 · 0 评论 -
hdu1203 I NEED A OFFER!(01背包)
I NEED A OFFER!Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 29812 Accepted Submission(s): 12157Problem DescriptionSpeakles原创 2017-08-19 20:53:08 · 231 阅读 · 0 评论 -
最长上升子序列问题(LIS)和最长公共子序列问题(LCS)
最长上升子序列问题:给定n个整数A1,A2,…,An,按从左到右的顺序选出尽量多的整数,组成一个上升子序列(子序列可以理解为:删除0个或多个数,其他数的顺序不变)。例如序列1,6,2,3,7,5,可以选出上升子序列1,2,3,5,也可以1,6,7,但前者更长。选出的上升子序列中相邻元素不能相同。【分析】设d(i)为以i结尾的最长上升子序列列的长度,则d(i)=max{0,d(j)|j原创 2017-08-13 15:14:44 · 530 阅读 · 0 评论 -
hdu2845
BeansTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5154 Accepted Submission(s): 2392Problem DescriptionBean-eating is an in原创 2017-07-29 20:19:34 · 279 阅读 · 0 评论 -
hdu2577
How to TypeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7153 Accepted Submission(s): 3230Problem DescriptionPirates have f原创 2017-07-29 19:48:26 · 318 阅读 · 0 评论 -
UVA437
题目如下:https://vjudge.net/problem/UVA-437利用最长上升子序列的思想便可以解这道题#include #include #include #include using namespace std; struct node{ int x; int y; int z;}; bool cmp(node a,node b) {原创 2017-08-10 16:22:43 · 327 阅读 · 0 评论 -
hdu1081(dp)(多维化成一维的最大子序列)
To The MaxTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 13473 Accepted Submission(s): 6424Problem DescriptionGiven a two-di原创 2017-08-20 21:49:36 · 313 阅读 · 0 评论 -
51nod 1002 数塔取数问题(简单DP)
一个高度为N的由正整数组成的三角形,从上走到下,求经过的数字和的最大值。每次只能走到下一层相邻的数上,例如从第3层的6向下走,只能走到第4层的2或9上。 5 8 4 3 6 97 2 9 5例子中的最优方案是:5 + 8 + 6 + 9 = 28Input第1行:N,N为数塔的高度。(2 <= N <= 500)原创 2017-09-12 22:29:59 · 302 阅读 · 0 评论 -
51Nod 1006 最长公共子序列Lcs(DP)
给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的)。比如两个串为:abcicbaabdkscabab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最长的子序列。Input第1行:字符串A第2行:字符串B(A,B的长度 Output输出最长的子序列,如果有多个,随意输出1个原创 2017-09-12 22:44:22 · 318 阅读 · 0 评论 -
51Nod 1009 数字1的数量
给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数。例如:n = 12,包含了5个1。1,10,12共包含3个1,11包含2个1,总共5个1。Input输入N(1 Output输出包含1的个数Input示例12Output示例5数位DP,主要的是找到状态转移方式,可以用一个原创 2017-09-13 20:05:34 · 278 阅读 · 0 评论 -
动态规划
线性DP简单的线性递推每一项都是由他的前一项递推而来, 例如 当m=2,c1=c2=a1=a2=1时,是斐波那契数列。咱们需要算出第n项,咋算: 使用矩阵快速幂: 对于如下方程, 对于更加复杂的内容,我们可以通过如下操作 最长上升子序列首先,我们都知道一个n平方的DP做法,我们假设dp[i]是以a[i]结尾的最长上升子序列的值,那么我们可以找...原创 2018-08-14 08:22:11 · 1419 阅读 · 0 评论