![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
·马克图布·
如果人生真的可以分为几个阶段的话,那么我现在就在感觉自己很普通,并一无是处的那个阶段。
展开
-
Atcoder E - Payment(DP)
题意:在一个国家有有10100+110^{100}+110100+1种货币,分别是价值为1,101,102,103.......101001,10^1,10^2,10^3.......10^{100}1,101,102,103.......10100的货币,现在你在超市买东西,你需要支付NNN元,问你和货员在这个过程中用到的总票数最小是多少张。思路:从低位到高位,每一位只有两种选择,1、支...原创 2020-02-23 11:12:55 · 530 阅读 · 0 评论 -
Atcoder E - Crested Ibis vs Monster(背包dp)
题意朱鹭正在和一只怪兽搏斗,朱鹭能施N种魔法。释放第i个法术降低怪物的生命值AiA_iAi;,以BiB_iBi为代价;神奇的点。同一个法术可以施放多次。没有其他方法可以降低怪物的生命值。当怪物的生命值变为0或以下时,Ibis获胜。找出获胜前必须消耗的最小魔法点数。思路背包dp。设dp[i]dp[i]dp[i]为生命值为iii时的消耗的最小魔法点数。初始化dpdpdp数值为无穷。类似...原创 2020-01-27 10:13:44 · 3146 阅读 · 0 评论 -
Atcoder D - Lucky PIN(思维 | DP)
题意:给你n个数组成的排列,问你通过删除n - 3位数,能组成多少种三位数、思路:枚举三位数,然后检验。AC Code:#include<iostream>#include<cstring>#include<queue>#include<map>#include<cmath>#include<set>...原创 2019-12-02 15:43:11 · 238 阅读 · 0 评论 -
Atcoder C - 100 to 105(完全背包)
题目链接题意:给你一个x,问能够有100,101,102,103,104,105这几个数构成。思路:完全背包变形。因为dp 所有的组合 枚举出来,所以我们最后直接看dp[x] 是否为1 。AC Code:#include<iostream>#include<cstring>#include<queue>#include<map>...原创 2019-12-02 15:16:52 · 240 阅读 · 0 评论 -
hdu6153 A Secret(KMP + DP)
题意: 给你两个字符串 t 和 s,然后让你计算 s的后缀在 t中出现的次数* 后缀的长度 累加的 和 。思路:考虑KMP ,因为 KMP 是匹配前缀的所以,需要倒转字符串。然后设dp数组为 长度 为 i的前缀 在 t中出现 的次数 ,在 KMP 匹配的过程中,每次 dp[j] ++。但是,KMP算法为了减少 回溯,会省略相同长度字符的匹配,即Next[i] 代表着非前缀 后缀的...原创 2019-10-24 21:59:13 · 387 阅读 · 0 评论 -
51Nod 1277 字符串中的最大值(KMP + DP)
题意:给你一个字符串,然后让你找该字符串 的前缀出现次数 * 长度的最大值。思路:KMP + dp。先KMP求出next数组。设dp[i] 代表 i长度的 前缀出现的次数。那么 对应着 i 有 dp[ next[i] ] += dp[i]因为 Next数组的含义 是非前缀的后缀子串 与该字符串前缀 匹配的 最大长度,即对应着Next[i],如果Next[i] 不等于0 的话,...原创 2019-10-24 20:29:13 · 183 阅读 · 0 评论 -
hdu3336 Count the string(KMP) !!!
题意:给你一个字符串s,然后让你输出s中所有前缀在s中出现次数的和。例如 abab ,a 2 ,ab 2 ,aba 1,abab 1 ,统计和为 6。.思路:看网上有众多思路。看kuangbin说这题可以直接求出扩展KMP的Next数组。然后直接加和就行。还有KMP + dp,还有直接利用KMP做的,主要看如何转化题意,还有对KMP Next数组的理解。1、e-KMP扩展KM...原创 2019-10-20 12:08:38 · 177 阅读 · 0 评论 -
P2725 邮票 Stamps(完全背包)
题目背景给一组 N 枚邮票的面值集合(如,{1 分,3 分})和一个上限 K —— 表示信封上能够贴 K 张邮票。计算从 1 到 M 的最大连续可贴出的邮资。题目描述例如,假设有 1 分和 3 分的邮票;你最多可以贴 5 张邮票。很容易贴出 1 到 5 分的邮资(用 1 分邮票贴就行了),接下来的邮资也不难:6 = 3 + 3 7 = 3 + 3 + 1 8 = 3 + 3 ...原创 2019-06-26 00:17:55 · 294 阅读 · 0 评论 -
最长上升子序列(LIS)长度的O(nlogn)算法
转载前辈的文章,写的非常好!——>1传送 2传送hdu1950Bridgingsignalshttp://acm.hdu.edu.cn/showproblem.php?pid=1950===================================最长上升子序列(LIS)的典型变形,熟悉的n^2的动归会超时。LIS问题可以优化为nlogn的算法。定义d[k]:长度...转载 2019-06-20 14:58:49 · 306 阅读 · 0 评论 -
P2722 总分 Score Inflation(完全背包)
题目背景学生在我们USACO的竞赛中的得分越多我们越高兴。我们试着设计我们的竞赛以便人们能尽可能的多得分,这需要你的帮助题目描述我们可以从几个种类中选取竞赛的题目,这里的一个"种类"是指一个竞赛题目的集合,解决集合中的题目需要相同多的时间并且能得到相同的分数。你的任务是写一个程序来告诉USACO的职员,应该从每一个种类中选取多少题目,使得解决题目的总耗时在竞赛规定的时间里并且总分最...原创 2019-06-15 23:02:42 · 203 阅读 · 0 评论 -
合并石子(区间DP)
【题目描述】在一个操场上一排地摆放着N堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。计算出将N堆石子合并成一堆的最小得分。【输入】第一行为一个正整数N (2≤N≤100);以下N行,每行一个正整数,小于10000,分别表示第i堆石子的个数(1≤i≤N)。【输出】一个正整数,即最小得分。【...原创 2019-06-04 15:11:49 · 219 阅读 · 0 评论 -
poj2229 Sumsets(递推)
Total Submissions: 26292 Accepted: 9938 DescriptionFarmer John commanded his cows to search for different sets of numbers that sum to a given number. The cows use only numbers that are an ...原创 2019-06-01 19:03:10 · 222 阅读 · 0 评论 -
C. Barcode(DP)
You've got ann × mpixel picture. Each pixel can be white or black. Your task is to change the colors of as few pixels as possible to obtain a barcode picture.A picture is a barcode if the followin...原创 2019-07-28 21:12:42 · 209 阅读 · 0 评论 -
poj1949 Chores(DAG最长路问题)
Total Submissions: 6843 Accepted: 3252 DescriptionFarmer John's family pitches in with the chores during milking, doing all the chores as quickly as possible. At FJ's house, some chores ca...原创 2019-06-13 14:48:56 · 319 阅读 · 0 评论 -
求最长不下降序列(输出序列)
【题目描述】设有由n(1≤n≤200)n(1≤n≤200)个不相同的整数组成的数列,记为:b(1)、b(2)、……、b(n)b(1)、b(2)、……、b(n)且b(i)≠b(j)(i≠j)b(i)≠b(j)(i≠j),若存在i1<i2<i3<…<iei1<i2<i3<…<ie 且有b(i1)<b(i2)<…<b(ie)b(i1)...原创 2019-07-02 13:36:18 · 574 阅读 · 0 评论 -
P2736 “破锣摇滚”乐队 Raucous Rockers(DFS| DP)
题目描述你刚刚继承了流行的“破锣摇滚”乐队录制的尚未发表的N(1 <= N <= 20)首歌的版权。你打算从中精选一些歌曲,发行M(1 <= M <= 20)张CD。每一张CD最多可以容纳T(1 <= T <= 20)分钟的音乐,一首歌不能分装在两张CD中。CD数量可以用完,也可以不用完不巧你是一位古典音乐迷,不懂如何判定这些歌的艺术价值。于是你决定根据...原创 2019-06-27 01:04:58 · 316 阅读 · 0 评论 -
hdu1087 Super Jumping! Jumping! Jumping!(最大上升子序列的和)
Problem DescriptionNowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!” is very popular in HDU. Maybe you are a good boy, and know little about this game, so I introduce it t...原创 2019-06-19 22:34:10 · 237 阅读 · 0 评论 -
P2727 01串 Stringsobits(DP)
题目背景考虑排好序的N(N<=31)位二进制数。题目描述他们是排列好的,而且包含所有长度为N且这个二进制数中1的位数的个数小于等于L(L<=N)的数。你的任务是输出第i(1<=i<=长度为N的二进制数的个数)小的(注:题目这里表述不清,实际是,从最小的往大的数,数到第i个符合条件的,这个意思),长度为N,且1的位数的个数小于等于L的那个二进制数。(例:1...原创 2019-07-17 16:11:00 · 194 阅读 · 0 评论 -
poj1050 To the Max(最大子矩阵和)
Total Submissions: 55487 Accepted: 29338 DescriptionGiven a two-dimensional array of positive and negative integers, a sub-rectangle is any contiguous sub-array of size 1*1 or greater loca...原创 2019-07-23 10:58:12 · 201 阅读 · 0 评论 -
165. 小猫爬山 (DFS | 状压DP)
翰翰和达达饲养了N只小猫,这天,小猫们要去爬山。经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<)。翰翰和达达只好花钱让它们坐索道下山。索道上的缆车最大承重量为W,而N只小猫的重量分别是C1、C2……CNC1、C2……CN。当然,每辆缆车上的小猫的重量之和不能超过W。每租用一辆缆车,翰翰和达达就要付1美元,所以他们想知道,最少需要...原创 2019-08-11 10:47:49 · 550 阅读 · 0 评论 -
E. Beautiful Decomposition(贪心 | DP)
题目链接————题意大致是给你一个数,然后用二进制加和产生这个数,问最小需要多少个二的幂来产生。11011014= 2^7 + ( - 2^4) + ( - 2^2) + 2^0.贪心 考虑逆向加和, 拿这个来说1101101最后一个1因为前面有个0,所以直接直接减去倒数第二个1,因为前面还有个1,所以加个1让它进位产生足够多的0。依次类推,就是模拟进位的过程,因为我太弱...原创 2019-09-05 19:24:38 · 335 阅读 · 0 评论 -
19icpc沈阳网络赛 Dawn-K's water(完全背包 + 枚举)
题意大致是 :一个人要买矿泉水,有n种类型的 矿泉水,每种矿泉水价格p重量c,要你求买够重量 >= m的矿泉水的最小价格。思路:完全背包。题意是要求 你 求 >=m的最小价值,也就是说这个背包不像普通的背包似的,让你求不超过背包容量的最小价值。也就是说这个背包容量无上界,需要你自己设置,比赛中我用m * 10作为背包上界,还有因为数组的原因Wa了二十多次才A。。。所以应该根据题...原创 2019-09-14 20:24:05 · 165 阅读 · 0 评论 -
最大连续字段和(可以优化空间-0(1) ) & Max Sum
给定有n个整数(可能为负整数)组成的序列a1,a2,…,an,求该序列连续的子段和的最大值。如果该序列的所有元素都是负整数时定义其最大子段和为0。例如,当(a1,a2,a3,a4,a5)=(-5,11,-4,13,-4-2)时,最大子段和为11+(-4)+13=20。收起输入第一行整数个数N第二行为N个整数,每个整数之间用一空格隔开。1<=N<=100000N个...原创 2019-03-26 22:51:56 · 787 阅读 · 0 评论 -
神奇的口袋(DP or DFS)
描述有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。输入输入的第一行是正整数n (1 <= n &...原创 2019-04-25 12:34:27 · 411 阅读 · 0 评论 -
饭卡(01背包+贪心)
Problem Description电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。某天,食堂中有n种菜出售,每种菜可购买一次。已知每种菜的价格以及卡上的余额,问最少可使卡上的余额为多少。Inpu...原创 2019-05-03 18:18:58 · 330 阅读 · 0 评论 -
Cash Machine(多重背包)
Total Submissions: 42911 Accepted: 15581 DescriptionA Bank plans to install a machine for cash withdrawal. The machine is able to deliver appropriate @ bills for a requested cash amount. T...转载 2019-04-07 09:03:51 · 339 阅读 · 0 评论 -
How to type(贪心orDP)
Pirates have finished developing the typing software. He called Cathy to test his typing software. She is good at thinking. After testing for several days, she finds that if she types a string by some...原创 2019-04-05 22:06:10 · 471 阅读 · 0 评论 -
最长上升子序列
一个数列的最长上升子列,是指其所有递增的子列中最长的一个子列给定一个长度为 n 的数列 an,求这个数列的最长上升子列的长度例如对数列 1 7 2 8 3 4,这个数列的最长递增子数列是 1 2 3 4,长度为 4;次长的长度为 3, 包括 1 7 8、1 2 3 等。收起输入第一行一个正整数 n,表示数列元素个数,n<=1000第二行 n 个正整数,从左到右给出数...原创 2019-03-24 16:14:42 · 581 阅读 · 0 评论 -
Common Subsequence
Problem DescriptionA subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = <x1, x2, ..., xm> another sequence Z = <z1, z2, ....原创 2019-04-04 17:19:52 · 640 阅读 · 0 评论 -
DP入门——数塔(递推or记忆化搜索)
在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少已经告诉你了,这是个DP的题目,你能AC吗?Input输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <= N <= 100),表示数塔的高度,接下来用N行数字表示数塔...原创 2019-03-26 17:13:49 · 455 阅读 · 0 评论 -
Humble Numbers(丑数)
Problem DescriptionA number whose only prime factors are 2,3,5 or 7 is called a humble number. The sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, ... shows the first...原创 2019-03-30 11:25:42 · 425 阅读 · 0 评论 -
Bone Collecto(01背包)
Problem DescriptionMany years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he went to the grave ...原创 2019-03-30 10:02:30 · 243 阅读 · 0 评论 -
开学第五周.two(背包专题)
现在做题比原来有点感觉了,虽然做的题目并不是很多,但也是感觉到动态规划的神奇,写出的代码优美简洁,难的是如何分解成子问题从而确定下状态,进而写出状态转移方程。遇见问题要具体情况具体分析。下面是对动态规划中背包问题的部分总结(背模板,背模板,背模板),目前刚接触,感觉挺有意思(我是认真的),逐渐补充。01背包首先01背包题目的雏形是有N件物品和一个容量为V的背包。第i件物品的费用是c[i...原创 2019-03-30 20:47:36 · 232 阅读 · 0 评论 -
Piggy-Bank(完全背包*恰好装满)
Problem DescriptionBefore ACM can do anything, a budget must be prepared and the necessary financial support obtained. The main income for this action comes from Irreversibly Bound Money (IBM). The ...原创 2019-04-01 22:27:46 · 266 阅读 · 0 评论 -
寒冰王座(记忆化搜索or01背包)
不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票(记住,只有一张钞票),为了防止自己在战斗中频繁的死掉,他决定给自己买一些道具,于是他来到了地精商店前.死亡骑士:"我要买道具!"地精商人:"我们这里有三种道具,血瓶150块一个,魔法药200块一个,无敌药水350块一个."死亡骑士:"好的,给我一个血瓶."说完他掏出那张N元的大钞递给地精商人.地精商人:"我忘了提醒你了,我们这里没有找客...原创 2019-03-28 17:16:11 · 234 阅读 · 0 评论 -
上台阶2(dp)
小瓜想走上一个一共有n级的台阶,由于小瓜的腿长比较特殊,他一次只能向上走1级或者3级或者5级台阶。小瓜想知道他有多少种方法走上这n级台阶,你能帮帮他吗?收起输入一行一个整数n(n<=100000),表示一共有n级台阶。输出一行一个整数,表示小瓜上台阶的方案数*对100003取余*的结果。输入样例3输出样例2 算是基础DP吧。体现加法原理...原创 2019-04-27 21:14:20 · 986 阅读 · 0 评论 -
滑雪
DescriptionMichael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 516 17 18 19 615 24 25 20 714 ...原创 2019-04-13 17:32:36 · 260 阅读 · 1 评论 -
ACboy needs your help(分组背包)
Problem DescriptionACboy has N courses this term, and he plans to spend at most M days on study.Of course,the profit he will gain from different course depending on the days he spend on it.How to ar...原创 2019-04-09 21:44:10 · 228 阅读 · 0 评论 -
FatMouse and Cheese
Problem DescriptionFatMouse has stored some cheese in a city. The city can be considered as a square grid of dimension n: each grid location is labelled (p,q) where 0 <= p < n and 0 <= q &l...原创 2019-04-13 22:37:23 · 176 阅读 · 0 评论 -
I NEED A OFFER!(01背包)
Speakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学校了。要申请国外的任何大学,你都要交纳一定的申请费用,这可是很惊人的。Speakless没有多少钱,总共只攒了n万美元。他将在m个学校中选择若干的(当然要在他的经济承受范围内)。每个学校都有不同的申请费用a(万美元),并且Speakless估计了他得到这个学校offer的可能性b。不同学校之...原创 2019-04-08 21:33:20 · 201 阅读 · 0 评论