动态规划
文章平均质量分 69
EnjoyingAC
bugger,写bug爱好者。
展开
-
POJ3624 Charm Bracelet(01背包问题)
题目链接http://poj.org/problem?id=3624题意给定N种物品的价值v[i]和重量w[i],每一种物品只有一个,求用一个最多能装重量为M的背包所能装物品的最大价值。题解01背包问题。 设dp[i]表示容量为i的背包所能获得的最大价值。 决策:第i种物品是否放入背包。 状态转移方程:dp[i]=max(dp[i],dp[i-w[i]]+v[i])。代码#include <c原创 2017-12-22 19:08:25 · 238 阅读 · 0 评论 -
HDU 1160 FatMouse's Speed (记录路径的最长上升子序列)
题意很多肥老鼠认为,长的越肥,奔跑速度就越快,为了反驳这个观点,你现在需要对老鼠的体重和速度进行研究,你要在老鼠序列中找出一个子序列,使得老鼠的体重在增加,但是速度却在减慢 很多肥老鼠认为,长的越肥,奔跑速度就越快,为了反驳这个观点,你现在需要对老鼠的体重和速度进行研究,你要在老鼠序列中找出一个子序列,使得老鼠的体重在增加,但是速度却在减慢 Input 输入以eof结束。 输入中每行有...原创 2018-07-21 19:48:05 · 320 阅读 · 0 评论 -
POJ 1458 Common Subsequence (LCS模板题)
题意Cry对于泡妹子十分不熟练,在见到小姐姐后十分紧张,这时,他想起了czh对他的教诲,于是他决定尽可能找到自己与小姐姐的共同点。Cry靠他强大的人格魅力获取了小姐姐的基因片段,同时他也提供了自己的基因片段,现在我们假定,他们的公共点个数为两个片段的最长公共子序列中元素个数,cry有点方因为他完全不会做,他的幸福生活只能靠在座的各位了! Input 多组输入,每行有两个字符串,根据本czh...原创 2018-07-21 19:51:33 · 167 阅读 · 0 评论 -
POJ 2533 Longest Ordered Subsequence (LIS模板题)
题意 鹏神意外得到了神灯。 神灯中冒出了灯神,灯神说道:“我将给你一个有序的数列,你可以在保证原有顺序不变的前提下,挑出任意多的数。如果你挑出的数字是严格升序的,那么这段数字的个数就是你女朋友的个数。” “妈的智障。”鹏神骂道。 但是鹏神还是希望自己能有尽可能多的女朋友。所以他求救于你,希望你能帮他算出他最多能有多少女朋友。解题LIS模板题。 最长上升子序列的解法比...原创 2018-07-21 19:54:45 · 143 阅读 · 0 评论 -
HDU 1078 FatMouse and Cheese(记忆化搜索)
题意有一种游戏是的玩法是这样的: 有一个n*n的格子,每个格子有一个数字。 遵循以下规则: 1. 玩家每次可以由所在格子向上下左右四个方向进行直线移动,每次移动的距离不得超过m 2. 玩家一开始在第一行第一列,并且已经获得该格子的分值 3. 玩家获得每一次移动到的格子的分值 4. 玩家下一次移动到达的格子的分值要比当前玩家所在的格子的分值要大。 5. 游戏所有数字加起来也不大,保...原创 2018-07-21 19:59:36 · 259 阅读 · 0 评论 -
POJ 3186 Treats for the Cows (二维dp)
题意在该题中,请不要使用#include< bits/stdc++.h> 和任何c++11及以上的特性 给出n个数字v(i),每次你可以取出最左边的数字或者取出最右边的数字,一共取n次取完。假设你第i次取的数字是x,那么你可以获得i*x的价值。现在你需要规划取数顺序,使得总价值和最大。解题因为每次取数变化的状态是剩下的数。所以设dp[i][j]表示剩n-i个数且所剩数为第...原创 2018-07-21 20:09:46 · 194 阅读 · 0 评论 -
POJ 2955 Brackets (区间dp,匹配括号数)
题意合法括号: (), [], (()), ()[], ()[()] 非法括号: (, ], )(, ([)], ([(] 合法括号+合法括号还是合法。合法括号套合法括号也是合法。 给定一个仅由’(‘,’)’,’[‘,’]’组成的字符串。求最长合法括号子序列。解题一开始想着用栈去操作,将‘(‘,’[‘入栈,然后遇到‘)’,’]’时出栈去匹配。但是因为’([)] ‘是非法括号,...原创 2018-07-22 20:34:09 · 142 阅读 · 0 评论 -
POJ 1651 Multiplication Puzzle (区间dp,从区间中间选数移除)
题意给定N个数。要求从现有的数的“中间”选一个数移除,即不能选第一个和最后一个。最后剩下两个数。每选一个数付出的·代价是:如果选第i个数,则代价为a[i]*a[i-1]*a[i+1]。其中a[i]表示第i个数的值。求付出的最小代价是多少。解题设dp[i][j]表示将区间[i,j]的数选到只剩下两个后需要付出的最小代价。 从小区间更新大区间: dp[i][j]=dp[i][k]+dp...原创 2018-07-22 20:43:11 · 135 阅读 · 0 评论 -
POJ 1160 Post Office (区间dp,从n个村庄选m个点建邮局,使得每个村庄到邮局的距离和最小)
题意给定n个村庄的坐标,选m个地方建邮局,要求各个村庄到其最近的邮局的距离之和最小。距离定义为坐标之差。解题设dp[i][j]表示前i个村庄建j个邮局的最小距离和。先预处理对于每个区间建一个邮局的最小距离和。设dis[i][j]表示在区间[i][j]建一个邮局的最小距离和。dis[i][j]=dis[i][j-1]+a[j]-a[(i+j)/2].因为建一个邮局的话,显然建立在中位...原创 2018-07-22 21:07:30 · 2178 阅读 · 0 评论 -
【Jzoj1771】烽火传递 单调队列优化dp
题目链接http://swordoj.win/problem/577题目烽火台又称烽燧,是重要的军事防御设施,一般建在险要或交通要道上。一旦有敌情发生,白天燃烧柴草,定代价。 为了使情报准确地传递,在连续m个烽火台中至少要有一个发出信号。请计算总共最少花费多少代价,才能使敌军来袭之时,情报能在这两座城市之间准确传递。 【输入格式】 第一行:两个整数N,M。其中N表示烽火...原创 2018-08-05 19:43:57 · 472 阅读 · 0 评论 -
BZOJ 4262 Codechef REBXOR 01字典树
题目链接https://www.lydsy.com/JudgeOnline/problem.php?id=4260题目 Input 输入数据的第一行包含一个整数N,表示数组中的元素个数。 第二行包含N个整数A1,A2,…,AN。 Output 输出一行包含给定表达式可能的最大值。 Sample Input 51 2 3 1 2 Sample Output 6 H...原创 2018-08-06 10:24:14 · 214 阅读 · 0 评论 -
LA 3942 Remember the Word 字典树 DP
题目链接https://vjudge.net/problem/UVALive-3942题意给定一个字符串str和N个单词s。把这个字符串分解成若干个单词的连接(单词可以重复使用),有多少种方法?解题题目可以理解为由空串“走”到目标串str。每次走的“步数”恰好是一个单词。比如有单词a、b、cd、ab。目标串为abcd。可以由空串走到a,b,cd,ab。然后可以从a走到aa,ab...原创 2018-08-07 14:47:54 · 192 阅读 · 0 评论 -
UVA 11468 Substring AC自动机 概率DP
题意给出一些字符和各自对应的选择概率,随机选择L次后得到一个长度为L的随机字符串S(每次独立随机)。给出K个模板串,计算S不包含任何一个串的概率(即任何一个模板串都不是S的连续子串)。题解对K个模板串建立AC自动机。 随机选择一个长度为L的随机字符串S就相当于在AC自动机上走L步。 设dp[u][L]表示当前在u结点上还需走L步且不包含模板串的概率。 根据全概率公式: dp[u...原创 2018-08-12 15:37:03 · 157 阅读 · 0 评论 -
51nod 1086 背包问题 V2 01背包变形、二进制
题目链接https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1086题意有N种物品,每种物品的数量为C1,C2……Cn。从中任选若干件放在容量为W的背包里,每种物品的体积为W1,W2……Wn(Wi为整数),与之相对应的价值为P1,P2……Pn(Pi为整数)。求背包能够容纳的最大价值。题解转化为01背包。...原创 2018-09-04 21:29:05 · 181 阅读 · 0 评论 -
51nod 1737 配对 (贡献、贪心、树形dp)
题目链接https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1737题意给出一棵n个点的树,将这n个点两两配对,求所有可行的方案中配对两点间的距离的总和最大为多少。题解先随便选个点作为根,将无根树变成有根树。 将边权对应到点权(边u-v的权值对应到v)。距离总和大小是根据每条边贡献的次数来计算的,故...原创 2018-09-07 10:45:48 · 296 阅读 · 0 评论 -
HDU 1257 最少拦截系统
题意某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹. 怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到这里来求救了,请帮助计算一下最少需要多少...原创 2018-07-21 19:39:21 · 107 阅读 · 0 评论 -
HDU 1260 Tickets (DP)
题意现在有n个人要买电影票,如果知道每个人单独买票花费的时间,还有和前一个人一起买花费的时间,问最少花多长时间可以全部买完票。 解题读题时有疑惑,一次性最多可以有几人一起买票?我对题意的一个理解是可以有k个人一起买票(1<=k<=N),以这个为基础写了一发WA。所以正确的题意理解是可以一次性买一个人的票或一次性买相邻的两个人的票。 因为要记录第i个买票是单独买还是和前面一...原创 2018-07-21 19:32:59 · 487 阅读 · 0 评论 -
Prince and Princess UVA - 10635(LCS转LIS)
题目链接https://vjudge.net/problem/UVA-10635题意有两个长度分别为p+1和q+1的序列,每个序列的各个元素互不相同,且都是1~n^2之间的整数。两人序列的第一个元素均为1.求出A和B的最长公共子序列长度分析直接采用LCS模板去解的话,时间复杂度为O(pq).时间超限。 注意到每个序列的各个元素互不相同,我们可以将A序列的各个元素离散化为一个顺...原创 2018-03-19 21:42:16 · 246 阅读 · 0 评论 -
Game of Sum UVA - 10891(动态规划)
题目链接https://vjudge.net/problem/UVA-10891题意有一个长度为n的整数序列,两个游戏者A和B,A先取数,每次只能从一端开始取连续的任意个数(可以取整个序列)。所以数被取完后,游戏结束。以游戏者取走的数之和作为最终得分,求A的得分减去B的得分后的结果。(每个人采取的策略都是让自己的得分尽量高,且两人都足够聪明)。分析先画出状态转移图。 ...原创 2018-03-20 11:16:38 · 361 阅读 · 0 评论 -
Placing Lampposts UVA - 10859(树形dp)
题目链接https://vjudge.net/problem/UVA-10859题意给你一个n个点m条边的无向无环图,在尽量上的结点上放灯,使得所有边都被照亮。每盏灯都会照亮以它为端点的所有边,要求灯尽量少且被俩盏灯照亮的边尽量多。分析这个题有两个最优化条件,灯数a尽量小,被两盏灯照亮的边b尽量大。先把条件转化为尽量小,被一盏灯照亮的边c尽量小;这样,我们就可以用一个变量x=M...原创 2018-03-20 17:37:11 · 152 阅读 · 0 评论 -
第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛A题跳台阶
题目链接 ##:https://www.nowcoder.com/acm/contest/90/A 来源:牛客网题目时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 小明在坐景驰科技研发的无人车到达了目的地。 景驰科技(JingChi.ai)是一家由人工智能技术驱动...原创 2018-03-24 20:13:22 · 176 阅读 · 0 评论 -
【第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛】D题psd面试
题目链接https://www.nowcoder.com/acm/contest/90/D题目时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 掌握未来命运的女神 psd 师兄在拿了朝田诗乃的 buff 后决定去实习。 埃森哲公司注册成立于爱尔兰,是一家全球领先的专业服务...原创 2018-03-24 20:28:58 · 288 阅读 · 0 评论 -
【第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛】J题 强迫症的序列
题目链接:https://www.nowcoder.com/acm/contest/90/J 来源:牛客网时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 牛客网是IT求职神器,提供海量C++、JAVA、前端等职业笔试题库,在线进行百度阿里腾讯网易等互联网名企笔试面试模拟考试...原创 2018-03-24 21:24:23 · 316 阅读 · 0 评论 -
Sharing Chocolate UVALive - 4794(动态规划)
题目链接https://vjudge.net/problem/UVALive-4794题意给出一块长为x,宽为y的矩形巧克力,每次操作可以沿一条直线把一块巧克力切割成两块长宽均为整数的巧克力。是否可以经过若干次操作后得到n块面积分别为a1、a2,…an的巧克力。分析先试试能不能画出状态转移图,每次操作有两种决策:横着切和竖着切。这两种决策都是始终合法的。横着切有x-1种状态,竖...原创 2018-03-21 20:59:17 · 317 阅读 · 0 评论 -
火柴Matches UVA - 11375(高精度加法&&递推)
题目链接https://vjudge.net/problem/UVA-11375\题意用n根火柴能组成多少个非负整数,火柴不必用完。分析分析状态转移注意到,这个状态并不是随着火柴的增加,非负整数明显的随着变化。而是随着整数的位数增加有明显的状态转移。 设d(i)表示用完i根火柴所能组成的非负整数的个数,d(j)这个状态可以由任意d[i]加一个整数x得来,只要j=i+c[x]....原创 2018-03-27 17:53:57 · 242 阅读 · 0 评论 -
FZU2287 给力的移动 (求满足特定条件的LIS)
题目链接http://acm.fzu.edu.cn/problem.php?pid=2287题目你的弟弟给你安排了一个任务,他给了你1到N个数字的乱序排列,现在你想给你的弟弟秀一波操作,操作最少的次数把序列变成1到N的顺序排列,每次操作你可以选择序列中的一个数字并把它移动到序列的头部或尾部。Input 包含多组测试数据。每组测试数据的第一行为正整数N,表示排列的长度。第二...原创 2018-06-02 19:06:03 · 467 阅读 · 0 评论 -
FZU2289 项链(n种颜色组成长度为m的相邻不同色项链)
题目链接http://acm.fzu.edu.cn/problem.php?pid=2289题目520要到了,Xenon打算送给Cherry一条项链,这条项链有m个镶孔,编号分别为0到m-1。Xenon手上有n种颜色不同的钻石,他想将钻石镶嵌在项链上,而且每个相邻的镶孔,镶嵌上的钻石颜色要不一样。Xenon想知道他可以镶嵌出多少种不同的项链。PS:第k号镶孔和第(k-1+m)%...原创 2018-06-02 19:22:39 · 956 阅读 · 0 评论 -
HDU1024 Max Sum Plus Plus(滚动数组优化空间+dp空间换时间)
题意输入n个数。选取m个不重叠的区间,使得m个区间内的数之和最大。解题要记录两个量:选取了的数的个数、选取的区间个数。故设dp[i][j]表示选取了i个不重叠区间、选取了j个数、最后一个区间包含第j个数的选取方式的值。 这样,dp[i][j]={dp[i][j-1],dp[i-1][k]}+s[j],k取值范围是[i-1,j-1]。 空间复杂度为O(n*m),时间复杂度为O(n*m...原创 2018-07-09 21:30:30 · 228 阅读 · 0 评论 -
HDU1029 Ignatius and the Princess IV (O(n)级别的解法)
题意给你n个数字,你需要找出出现至少(n+1)/2次的数字 现在需要你找出这个数字是多少? 解题用b[i]表示i出现的次数。 遍历一遍数组a,统计每个值出现的次数。最后输出出现次数符合要求的值。AC代码#include <cstdio>#include <cstring>#include <iostream>#include &l...原创 2018-07-20 18:55:51 · 150 阅读 · 0 评论 -
HDU1069 Monkey and Banana(最长上升子序列的变形)
题意一组研究人员正在设计一项实验,以测试猴子的智商。他们将挂香蕉在建筑物的屋顶,同时,提供一些砖块给这些猴子。如果猴子足够聪明,它应当能够通过合理的放置一些砖块建立一个塔,并爬上去吃他们最喜欢的香蕉。研究人员有n种类型的砖块,每种类型的砖块都有无限个。第i块砖块的长宽高分别用xi,yi,zi来表示。 同时,由于砖块是可以旋转的,每个砖块的3条边可以组成6种不同的长宽高。在构建塔时,当且...原创 2018-07-20 19:06:36 · 209 阅读 · 0 评论 -
HDU1074 Doing Homework (状压dp,从n!种排列中选一种排列)
题意有n个任务,每个任务有一个截止时间,超过截止时间一天,要扣一个分。 求如何安排任务,使得扣的分数最少。解题n个任务,共有n!种执行方式。因为n不超过15,所以用状态压缩的方式来表示状态(即二进制)。 设dp[s]表示以状态s作为终止状态的安排方式的所扣最少分数。 状态转移方程:dp[s]=min{dp[s],dp[last]+执行x任务所需时间},状态last与s差了一个任务...原创 2018-07-20 19:55:20 · 256 阅读 · 0 评论 -
HDU 1087 Super Jumping! Jumping! Jumping! (最长上升子序列的变形,子序列值最大)
题意wsw获得了与小姐姐约会的机会,同时也不用担心wls会发现了,可是如何选择和哪些小姐姐约会呢?wsw希望自己可以循序渐进,同时希望挑战自己的极限,我们假定每个小姐姐有一个“攻略难度值” 从攻略成功第一个小姐姐开始,wsw希望每下一个需要攻略的小姐姐难度更高,同时又希望攻略难度值之和最大,好了,现在小姐姐们排成一排,wsw只能从左往右开始攻略,请你帮助他找到最大的攻略难度和解题设d...原创 2018-07-20 20:52:34 · 341 阅读 · 1 评论 -
HDU 1114 Piggy-Bank (完全背包的应用)
题意在 ACM 能够开展之前,必须准备预算,并获得必要的财力支持。该活动的主要收入来自于 Irreversibly Bound Money (IBM)。思路很简单。任何时候,某位 ACM 会员有少量的钱时,他将所有的硬币投入到小猪储钱罐中。这个过程不可逆,因为只有把小猪储钱罐打碎才能取出硬币。在足够长的时间之后,小猪储钱罐中有了足够的现金,用于支付 ACM 活动所需的花费。但是,小猪储钱罐...原创 2018-07-20 21:21:28 · 235 阅读 · 0 评论 -
HDU 1176 免费馅饼 (二维dp,机器人走方格变形)
题意都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径上接。由于gameboy平时老呆在房间里玩游戏,虽然在游戏中是个身手敏捷的高手,但在现实中运动神经...原创 2018-07-21 19:22:46 · 141 阅读 · 0 评论 -
51nod 1732 婚姻介绍所 (后缀数组、RMQ)
题目题解学过后缀数组的话,读完题基本就可以直接写了。(送分题?)先求出后缀数组和高度数组,然后ST预处理lcp值的范围最小值,最后O(1)查询即可。debug: 这个送分(命)题,我写了两个神奇的bug。 第一个是每次倍增排序后确定排名时cmp内应该比较的是sa[i-1]和sa[i].因为你要比较下第i名与第i-1名是否排名相同,肯定是比较第i名的后缀而不是i后缀。 第二...原创 2018-09-13 13:04:41 · 273 阅读 · 0 评论