DP
文章平均质量分 62
大大的梦_小小的步伐
大大的梦——小小的步伐
展开
-
2021-05-15
## Leetcode 139 单词拆分给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。输入: s = "leetcode", wordDict = ["leet", "code"] 输出: true 解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。题解: 1)1.DFS+记忆化剪枝 方法 每次将单词拆成两部分,i,k,j 。i是起始位...原创 2021-05-15 15:12:18 · 110 阅读 · 0 评论 -
HDU 1176 掉馅饼
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1176在0-10的坐标上有n个馅饼掉落,求能接到的最多馅饼数。初始位置在5,每秒移动一格。Sample Input65 14 16 17 27 28 30 Sample Output4思路:例子中移动路径为6 7 8。得到4个馅饼。 刚开始想原创 2017-09-09 21:34:09 · 176 阅读 · 0 评论 -
hdu1257 最小拦截系统
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1257一套导弹系统能够从低原创 2017-09-09 21:13:46 · 150 阅读 · 0 评论 -
HDU 1074 状态压缩DP 作业扣分
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1074Ignatius刚刚从第30届ACM / ICPC回到学校。 现在他做了很多功课。 每个老师给他一个交付作业的最后期限。 如果Ignatius在截止日期之后交作业,老师将减少他的最后考试成绩,1天1分。 正如你所知,做作业总是需要很长时间。 所以Ignatius希望你帮助他安排做作业的顺序,以减少原创 2017-09-09 17:00:03 · 438 阅读 · 0 评论 -
uva 10635 最长公共子序转最长上升子序
题目:https://cn.vjudge.net/contest/171116#overview两个人在n*n的方块里,从1到n*n,每个人经过一串数字,且只能经过一次,求最长公共子序。思路:开始看到这道题,觉得很简单,是最长公共子序,但是一做就TL,因为n*n,dp[n*n][n*n]超内存了,然后看了别人的博客,学会了把该问题转化成最长上升子序。最长上升子序:1 4 2 3 5 ,原创 2017-09-10 14:49:56 · 147 阅读 · 0 评论 -
51nod 1101 换零钱 完全背包计数
题目:https://cn.vjudge.net/contest/178832#problem/HN元钱换为零钱,有多少不同的换法?币值包括1 2 5分,1 2 5角,1 2 5 10 20 50 100元。例如:5分钱换为零钱,有以下4种换法:1、5个1分2、1个2分3个1分3、2个2分1个1分4、1个5分(由于结果可能会很大,输出Mod 10^9 + 7的结原创 2017-09-11 15:41:03 · 238 阅读 · 0 评论 -
51 nod 循环最大字段和 DP
题目:https://cn.vjudge.net/contest/178832#problem/E和最小子段和不一样,这道题可以尾首相连,就是在一个圈里找到最大子段和。思路:可以找到最小子段和,用all-最小子段和,就是有首尾相连的最大字段,然后再和没有首尾相连的最大字段比较,最大者就是答案。#include#include#includeusing namespace std;原创 2017-09-11 20:52:43 · 182 阅读 · 0 评论 -
51 nod 最小1的数量 数位DP
题目:https://cn.vjudge.net/contest/178832#problem/C输入1个整数n,计算从1到n各个位上1出现的次数。思路:如果暴力,肯定是会超时的。所以要从数位上找规律。221看10位上出现1的情况,10- 19,110-119,210-219.假如212,十位上10 19,110-119,210-212由百位和各位决定。再举些例子便可以发现,当该位n=原创 2017-09-11 20:40:59 · 148 阅读 · 0 评论 -
51nod 1042数位DP 精度
题目:https://cn.vjudge.net/contest/178832#problem/F这道题和之前的差别就是这题的数位比较大,要用long long ,开始pre ,af忘记设置了,一直wa。。。。。。。还有就是注意0的特殊情况。#includeusing namespace std;typedef long long ll;ll solve(ll n,ll cmp){原创 2017-09-11 23:01:12 · 177 阅读 · 0 评论 -
3-8 跳跃步数
题目大意:给定一个非负整数数组,假定你的初始位置为数组第一个下标。数组中的每个元素代表你在那个位置能够跳跃的最大长度。请确认你是否能够跳跃到数组的最后一个下标。A=[2,3,1,1,4]可以从第一个位置跳到第2,3个,第2个位置可以跳到3,4,5位置。所以输出TRUE。A=[3,2,1,0,4],第一个位置只能跳到2,3,4,第二个只能跳到3,4,无法从低4个位子跳到5.所原创 2017-10-19 15:56:50 · 622 阅读 · 0 评论 -
计蒜客 园艺布置 01规划二分
题目:https://nanti.jisuanke.com/t/90近期,法师康采纳了员工们的提议,计划在总部大楼内部种植园艺,以提供更加温馨的工作环境。公司将园艺设计的任务交给了晓萌同学。公司总部大楼内部的构造可以分为n个区域,编号为0, 1, …, n–1,其中区域i与i + 1是相邻的(0 ≤ i 输入第1行包含两个整数n和m,分别表示总区域数和至少覆盖的区域数。第2原创 2017-11-29 10:50:50 · 401 阅读 · 0 评论 -
沙子的质量
题目:设有N堆沙子排成一排,其编号为1,2,3,…,N(N< =300)。每堆沙子有一定的数量,可以用一个整数来描述,现在要将这N堆沙子合并成为一堆,每次只能合并相邻的两堆,合并的代价为这两堆沙子的数量之和,合并后与这两堆沙子相邻的沙子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同,如有4堆沙子分别为 1 3 5 2 我们可以先合并1、2堆,代价为4原创 2017-12-05 16:54:35 · 1480 阅读 · 0 评论 -
最长下降子序列 3-5
题目:给定一个整数序列,输出它的最长递减(注意不是“不递增”)子序列。输入包括两行,第一行包括一个正整数N(N输出为一行,最长递减子序列的结果,数字间用空格分隔(测试case中只会有一个最长递减子序列)。样例输入89 4 3 2 5 4 3 2样例输出9 5 4 3 2思路:原创 2017-12-06 08:58:55 · 2420 阅读 · 0 评论 -
计蒜客 淘宝流量分配 3-7
题目:在每年的淘宝“双十一”时,访问量都会暴涨,服务器的请求会被流量分配程序按照一定策略,分发给不同的进程去处理。有一类请求,有两个进程可以接受分发的请求,其中一个进程所在服务器的配置、网络传输性能等都要优于另一个进程。流量分发程序可以知道队列中每个任务的预计处理时间,每次都会尽可能将队列中预计处理时间更多的任务分配给性能更优的进程。假设队列当前一共有 nn 个任务待分配,第原创 2017-12-06 09:36:46 · 373 阅读 · 0 评论 -
树形DP
题目:Another Crisis Time Limit: 3000MS 64bit IO Format: %lld & %lluA couple of years ago, a new world wide crisis started, leaving many people with economical problems. Some workers of a par原创 2018-01-28 20:46:07 · 177 阅读 · 0 评论 -
Defense Lines
题目:After the last war devastated your country, you - as the king of the land of Ardenia - decided it washigh time to improve the defense of your capital city. A part of your fortification is a原创 2018-01-28 22:09:32 · 311 阅读 · 0 评论 -
1471 - Defense Lines(二分查找)
http://blog.csdn.net/Wiking__acm/article/details/8903103After the last war devastated your country, you - as the king of the land of Ardenia - decided it was high time to improve the defense of转载 2018-01-29 11:16:38 · 245 阅读 · 0 评论 -
hdu2082 母函数+背包
题目:https://cn.vjudge.net/contest/178527#problem/A假设有x1个字母A, x2个字母B,..... x26个字母Z,同时假设字母A的价值为1,字母B的价值为2,..... 字母Z的价值为26。那么,对于给定的字母,可以找到多少价值<=50的单词呢?单词的价值就是组成一个单词的所有字母的价值之和,比如,单词ACM的价值是1+3+14=18,单词HD...原创 2017-09-14 17:00:41 · 380 阅读 · 0 评论 -
HDU 1159 最长公共子序列
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1159输入两个字符串,求两个字符串的最长公共子序列。abcfbc abfcab例如 a b f b就是公共子序,即从左到右的顺序字符是一样的。思路:这是道最长公共子序模板体。可以用dp[i][j]表示第一个字符串到i位置和第二个字符串到j位置时的公共子序数量。当a[i]==b[j]时,dp[i+1]原创 2017-09-10 10:21:07 · 169 阅读 · 0 评论 -
HDU 1203 乘法 01背包
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1203Speakless有n万元,申请m个学校,每个学校有花费的金额和入学的可能性,求他最少进入一个学校的可能性。Sample Input10 34 0.14 0.25 0.30 0 Sample Output44.0%思路:先弄清楚怎么求原创 2017-09-09 22:45:43 · 240 阅读 · 0 评论 -
51 nod 1270 数组最大代价
题目:https://cn.vjudge.net/contest/178832#problem/I数组A包含N个元素A1, A2......AN。数组B包含N个元素B1, B2......BN。并且数组A中的每一个元素Ai,都满足1 (公式表示所有两个相邻元素的差的绝对值之和)给出数组B,计算可能的最大代价S。思路:由例子我们可以想到,ai每个数要么取bi,要么原创 2017-09-13 15:32:48 · 152 阅读 · 0 评论 -
幸运号码 数位DP
题目:https://cn.vjudge.net/contest/178832#problem/J1个长度为2N的数,如果左边N个数的和 = 右边N个数的和,那么就是一个幸运号码。例如:99、1230、123312是幸运号码。给出一个N,求长度为2N的幸运号码的数量。由于数量很大,输出数量 Mod 10^9 + 7的结果即可。思路:这道题2n位数是对称的,所以可以先原创 2017-09-13 15:55:34 · 246 阅读 · 0 评论 -
hdu 1171多重背包
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1171给你一堆物品的价值和数量,让你把这堆物品尽量平均分成两堆。思路:这是道多重背包的模板题。先计算总的价值,然后求dp[all/2]求出不超过一半价值的最大价值。刚开始wa里,因为数组开小了。注意物品种类,数量,价值,dp应该开到3者的乘积。dp[i]表示价值不超过i时的最大价值。一种方法是把原创 2017-09-10 13:19:16 · 219 阅读 · 0 评论 -
UVA 11825 状态压缩DP
题目:https://cn.vjudge.net/contest/171116#problem/C一个黑客攻击了一个节点,接下来每次能攻击相邻的节点,求该黑客能攻击的最大节点。Sample Input32 1 22 0 22 0 141 11 01 31 20Sample OutputCase 1: 3Case 2: 2原创 2017-09-10 15:26:31 · 169 阅读 · 0 评论 -
HDU 1421 DP计数
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1421给n个物品,取k对物品,每队物品消耗体力为两个物品质量差的平方。求取完k对的最小消耗体力;思路:这道题是一道DP计数的题目,这种题一般用DP[I][J]的形式解答。表示前i个物品,取j对的最小消耗。这里有个关系a所以可以把原来的n个数重新从小到大排列一下,例如 1 3 4 6,dp[原创 2017-09-11 15:08:30 · 133 阅读 · 0 评论 -
HDU 2079 多重背包组合计数
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2079 又到了选课的时间了,xhd看着选课表发呆,为了想让下一学期好过点,他想知道学n个学分共有多少组合。你来帮帮他吧。(xhd认为一样学分的课没区别)思路:这道题用背包的我就不说了,很容易理解,关键是DP如何理解。开始我想着用二进制优化多重背包写,但是样例就错,一直想不通为啥,问了别人,才发现...原创 2017-09-13 21:57:31 · 636 阅读 · 0 评论 -
CCF 2016-12 04编码(DP+哈夫曼树)
题目:给定一段文字,已知单词a1, a2, …,an出现的频率分别t1, t2, …, tn。可以用01串给这些单词编码,即将每个单词与一个01串对应,使得任何一个单词的编码(对应的01串)不是另一个单词编码的前缀,这种编码称为前缀码。 使用前缀码编码一段文字是指将这段文字中的每个单词依次对应到其编码。一段文字经过前缀编码后的长度为: L=a1的编码长度×t1+a2的编码长度×原创 2017-09-16 23:23:01 · 423 阅读 · 0 评论 -
HDU1028 母函数+DP求分解因子+背包
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1028输入一个整数,求它能被分解成几个几个因子的方法数。如4的分解方法共有5种。 4 = 4; 4 = 3 + 1; 4 = 2 + 2; 4 = 2 + 1 + 1; 4 = 1 + 1 + 1 + 1;思路:由于这道题最多就120,所以这道题可以用母函数,也可以用DP。先说母函数,用于组合的题...原创 2017-09-08 20:45:59 · 466 阅读 · 0 评论 -
编辑距离
题目:https://cn.vjudge.net/contest/178832#problem/A编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。例如将kitten一字转成sitting:sitten (k->原创 2017-09-17 10:24:47 · 232 阅读 · 0 评论 -
51 nod1051最大和子矩阵
题目:https://cn.vjudge.net/contest/180638#problem/A一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的,输出这个最大的值。例如:3*3的矩阵:-1 3 -12 -1 3-3 1 2和最大的子矩阵是:3 -1-1 31 2思路:这题的基础题是最大子原创 2017-09-17 11:28:22 · 198 阅读 · 0 评论 -
多重背包模板题 背包问题V2
题目:https://cn.vjudge.net/contest/180638#problem/B有N种物品,每种物品的数量为C1,C2......Cn。从中任选若干件放在容量为W的背包里,每种物品的体积为W1,W2......Wn(Wi为整数),与之相对应的价值为P1,P2......Pn(Pi为整数)。求背包能够容纳的最大价值。思路:利用二分法优化多重背包,将多重背包转化成原创 2017-09-17 11:39:27 · 697 阅读 · 0 评论 -
HDU 1003最大子段和
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1003输入N,r然后输入n个数字,求这些数字中的最大子段和,并标明起点终点。Input:25 6 -1 5 4 -77 0 6 -1 1 -6 7 -5 Sample OutputCase 1:14 1 4Case 2:7 1 6思路:简单的D原创 2017-09-09 11:38:21 · 195 阅读 · 0 评论 -
HDU1087 跳棋
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1087输入一串数字,从左到右,从start到end,每次经过一个数字,必须比上一次大,求经过的数字最大和。思路:简单DP。DP[i]表示从start跳到第i个时的最大和。dp[i]=max(dp[j]+a[i]),j#include#include#includeusing names原创 2017-09-09 16:39:11 · 238 阅读 · 0 评论 -
HDU1069 猴子叠木块
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1069研究人员有n种类型的块,并且每种类型的块都是无限制的。 每个i型块是具有线性尺寸(xi,yi,zi)的矩形固体。 块可以重新定向,使得它的三个维度中的任何两个确定基座的尺寸,而另一个尺寸是高度。他们想要确保通过堆放块可能的最高的塔可以到达屋顶。 问题在于,在建造塔架时,只能将一块块放置在另一块原创 2017-09-09 16:11:59 · 303 阅读 · 0 评论 -
HDU 1058 素数因子DP
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1058 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, ... shows the first 20 humble numbers. 一个数的因子由2,3,5,7构成,则这个数为 humble number原创 2017-09-09 15:37:40 · 174 阅读 · 0 评论 -
1024 多组最大字段和 循环使用优化
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1024这道题是最小子段和加强版。hdu1003是求出一组最大字段和,现在是求出m组最大子段和。Sample Input1 3 1 2 32 6 -1 4 -2 3 -2 3 Sample Output68思路:这道题是典型的DP题。刚开始不会,参考原创 2017-09-09 14:48:55 · 140 阅读 · 0 评论 -
HDU1114 存钱罐 完全背包
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1114给你一个存钱罐的空的质量和存满钱的质量,给你每种硬币的质量和价值,让你算出它的最小价值。310 11021 130 5010 11021 150 301 6210 320 4 Sample OutputThe minimum amount原创 2017-09-09 23:16:30 · 410 阅读 · 0 评论 -
51nod 1021 石子归并
题目:https://cn.vjudge.net/contest/178832#problem/G给你n堆石子,每堆石子只能和相邻的石子合并,合并的代价为两堆石子的质量,求合并成一堆石子的最小代价。思路:如果这道题不是和相邻的石子合并,那么便可以用贪心,每次取最小的两堆;和相邻的话必须全局考虑。用dp[i][j]表示第i堆到第j堆的最小代价。dp[i][j]=dp[i][k]+dp[k原创 2017-09-13 15:14:09 · 171 阅读 · 0 评论