
dp
我不是手机
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Alignment POJ - 1836 最长上升、下降子串
有一支N个新兵的部队,他们的序号从左到右分别为1到N,每个新兵都有一个身高ai,现在,我们希望给这支部队尽量少的踢掉几个新兵,剩下的新兵靠拢,使得每个剩下的任意一个位置的新兵向左或者向右其中的某一边的身高是严格递减的。Input第一行输入一个N,表示新兵的个数(2≤N≤1000)。第二行输入N个浮点数ai,分别表示这N个新兵的身高(0.5≤ai≤2.5)。Output输出一个整数,表示最少需要踢掉的新兵数目。Sample Input60.7 1.9 1.6 1.9 1.6 0.7Sampl原创 2020-11-23 10:38:32 · 187 阅读 · 0 评论 -
Multiplication Puzzle POJ - 1651 区间dp
The multiplication puzzle is played with a row of cards, each containing a single positive integer. During the move player takes one card out of the row and scores the number of points equal to the product of the number on the card taken and the numbers on原创 2020-09-12 14:45:17 · 124 阅读 · 0 评论 -
Brackets POJ - 2955 区间dp
用以下方式定义合法的括号字符串1.空串是合法的2. 如果S是合法的, 那么(S)和[S]也都是合法的3. 如果A和B是合法的, 那么AB是一个合法的字符串.举个栗子, 下列字符串都是合法的括号字符串:(), [], (()), ([]), ()[], ()[()]下面这些不是:(, [, ), )(, ([)], ([(]给出一个由字符’(’, ‘)’, ‘[’, 和’]‘构成的字符串. 你的任务是找出一个最长的合法字符串的长度,使这个的字符串是给出的字符串的子序列。对于字符串a1 a2 …原创 2020-09-12 14:39:45 · 207 阅读 · 0 评论 -
Halloween Costumes LightOJ - 1422 区间dp
小灰灰参加圣诞节的一些派对,并且需要穿上对应派对的衣服,所以他需要多次换衣服,为了方便,他可以选择脱掉一些衣服或者穿上新衣服,比如说,他穿着超人的衣服,外面又穿着死侍的衣服,当他要参加超人服装派对时,他可以选择脱掉死侍的衣服(因为死侍衣服的里面有超人的衣服),或者他可以在穿一件超人的衣服,小灰灰是个爱干净的人,当他脱下死侍的衣服后,如果需要再穿死侍的衣服,他会选择再穿一件新的。(如果他先穿A衣服,又穿上B衣服,再穿一件C衣服,如果他想让最外面的衣服是A,他可以选择直接穿一件A,或者先把C脱掉,再把B脱掉)。原创 2020-09-12 14:33:24 · 141 阅读 · 0 评论 -
Treats for the Cows POJ - 3186 复杂数塔模型 好题(基础dp专题)
给你n个数字v(1),v(2),…,v(n-1),v(n),每次你可以取出最左端的数字或者取出最右端的数字,一共取n次取完。假设你第i次取的数字是x,你可以获得i*x的价值。你需要规划取数顺序,使获得的总价值之和最大。Input第一行一个数字n(1<=n<=2000)。下面n行每行一个数字v(i)。(1<=v(i)<=1000)Output输出一个数字,表示最大总价值和。Sample Input513152Sample Output43Hint按照这种原创 2020-09-11 14:04:57 · 149 阅读 · 1 评论 -
Longest Ordered Subsequence POJ - 2533 最长上升子序列(基础dp专题)
给出一个序列,求出这个序列的最长上升子序列。序列A的上升子序列B定义如下:B为A的子序列B为严格递增序列Input第一行包含一个整数n,表示给出序列的元素个数。第二行包含n个整数,代表这个序列。1 <= N <= 1000Output输出给出序列的最长子序列的长度。Sample Input71 7 3 5 9 4 8Sample Output4单数列的最长上升子序列#include<stdio.h>#include<string.h>原创 2020-09-11 10:26:31 · 135 阅读 · 0 评论 -
Common Subsequence POJ - 1458 LCS问题(基础dp专题)
Ramen最近在玩音游。而他现在正在玩的音游可以将音游的输入解析为一个字符串,比如,满分为"abcdef",而玩家输入可能是“abccef”。而这个音游的算分机制也比较奇特:标准答案与玩家输入的最长公共子序列越长,玩家得分就越高。因此,Ramen想知道它能够拿到多少分,你能够帮帮他吗?输入描述程序需要读入多组输入。每组输入各占一行,最后没有输入时以EOF结尾。而对于每一组输入(即每一行),包含两个字符串,分别代表Ramen的输入和标准答案,中间以多个空格分隔。(字符串最长不超过500)输出描述每一原创 2020-09-11 10:17:25 · 257 阅读 · 0 评论 -
最少拦截系统 HDU - 1257 LIS问题的四种做法(基础dp专题)
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹.怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到这里来求救了,请帮助计算一下最少需要多少套拦截系统.Input输入若干组数据.每组数据包括:导弹总个数(正整数),导弹依此飞来的高度(雷达给出的高度数据是不大于原创 2020-09-01 16:18:36 · 127 阅读 · 0 评论 -
Tickets HDU - 1260 简单递推 (基础dp专题)
著名的宫崎骏动画片《千与千寻》在中传1500报重映,中传学子有幸成为全国第一批观众。动画学院学生会负责给大家发票,所有的中传同学只要把中传首映《千与千寻》的推送信息发到朋友圈并集够10个赞,就可以免费领取一张电影票。带着对童年的回忆,大家早早的就排队等待领票。为了让大家能够早点领取到心仪的门票,动画学院学生会想知道他们什么时候可以最快把票发完?最好的方法就是分好几处同时发票,并且在每处都尽量减少票的领取时间,让相邻的人一起领票。但是因为每处都只有两位同学在发票,因此每次只能是单个人领票或者相邻两个人一起领原创 2020-09-10 19:49:08 · 229 阅读 · 0 评论 -
免费馅饼 HDU - 1176 数塔模型 (基础dp专题)
都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径上接。由于gameboy平时老呆在房间里玩游戏,虽然在游戏中是个身手敏捷的高手,但在现实中运动神经特别迟钝,每秒种只有在移动不超过一米的范围内接住坠落的馅饼。现在给这条小径如图标上坐标:为了使问题简化,假设在接下来原创 2020-09-10 19:43:48 · 161 阅读 · 0 评论 -
Piggy-Bank HDU - 1114 完全背包 (基础dp专题)
在 ACM 能够开展之前,必须准备预算,并获得必要的财力支持。该活动的主要收入来自于 Irreversibly Bound Money (IBM)。思路很简单。任何时候,某位 ACM 会员有少量的钱时,他将所有的硬币投入到小猪储钱罐中。这个过程不可逆,因为只有把小猪储钱罐打碎才能取出硬币。在足够长的时间之后,小猪储钱罐中有了足够的现金,用于支付 ACM 活动所需的花费。但是,小猪储钱罐存在一个大的问题,即无法确定其中有多少钱。因此,我们可能在打碎小猪储钱罐之后,发现里面的钱不够。显然,我们希望避免这种不愉原创 2020-09-10 19:29:36 · 165 阅读 · 0 评论 -
Super Jumping! Jumping! Jumping! HDU - 1087 最长上升子序列 (基础dp专题)
给定一条长度为n的序列,其中一定存在一条元素和最大的严格上升子序列,求这条序列的元素和。Input包含多组输入数据,每组数据占一行,每行一个整数n,接着n个数a_1, a_2, …, a_n (a_i在32位有符号整型范围内),n = 0表示输入结束 (0 <= n <= 1000)。Output一个数,严格上升子序列最大元素和。Sample Input3 1 3 24 1 2 3 44 3 3 2 115 1 8 88 49 78 57 48 7 3 4 4 8 9 7 2原创 2020-09-10 19:26:40 · 134 阅读 · 0 评论 -
Monkey and Banana HDU - 1069 结构体记录多状态 (基础dp专题)
一组研究人员正在设计一项实验,以测试猴子的智商。他们将挂香蕉在建筑物的屋顶,同时,提供一些砖块给这些猴子。如果猴子足够聪明,它应当能够通过合理的放置一些砖块建立一个塔,并爬上去吃他们最喜欢的香蕉。研究人员有n种类型的砖块,每种类型的砖块都有无限个。第i块砖块的长宽高分别用xi,yi,zi来表示。 同时,由于砖块是可以旋转的,每个砖块的3条边可以组成6种不同的长宽高。在构建塔时,当且仅当A砖块的长和宽都分别小于B砖块的长和宽时,A砖块才能放到B砖块的上面,因为必须留有一些空间让猴子来踩。你的任务是编写一原创 2020-09-10 19:18:10 · 218 阅读 · 0 评论 -
Ignatius and the Princess IV HDU - 1029 Map计数(基础dp专题)
给出n个数,zjm想找出出现至少(n+1)/2次的数, 现在需要你帮忙找出这个数是多少?Input本题包含多组数据:每组数据包含两行。第一行一个数字N(1<=N<=999999) ,保证N为奇数。第二行为N个用空格隔开的整数。数据以EOF结束。Output对于每一组数据,你需要输出你找到的唯一的数。Sample Input51 3 2 3 3111 1 1 1 1 5 5 5 5 5 571 1 1 1 1 1 1Sample Output351用map来原创 2020-09-10 19:11:48 · 95 阅读 · 0 评论 -
Jury Compromise POJ - 1015 DP复杂01背包
在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定。陪审团是由法官从公众中挑选的。先随机挑选n个人作为陪审团的候选人,然后再从这n个人中选m人组成陪审团。选m人的办法是: 控方和辩方会根据对候选人的喜欢程度,给所有候选人打分,分值从0到20。为了公平起见,法官选出陪审团的原则是:选出的m个人,必须满足辩方总分和控方总分的差的绝对值最小。如果有多种选择方案的辩方总分和控方总分的之差的绝对值相同,那么选辩控双方总分之和最大的方案即可。Input输入包含多组数据。每组数据的第一行是两个整数n和m,n是候选人原创 2020-09-08 15:19:54 · 135 阅读 · 0 评论 -
String painter HDU - 2476 区间dp难题
There are two strings A and B with equal length. Both strings are made up of lower case letters. Now you have a powerful string painter. With the help of the painter, you can change a segment of characters of a string to any other character you want. That原创 2020-09-08 12:54:42 · 225 阅读 · 0 评论 -
Monkey Party HDU - 3506区间dp
有n堆石子围成一个圆型,每堆石子数量分别为a1,a2…an(从a1到an围成一圈,an与a1相邻)现在要将这n堆石子合并成一堆,每次只能合并相邻的两堆,每次合并的得分是这两堆石子的数量之和,计算这n堆石子合并成一堆的最小得分。Input多组输入每组数据第一行输入n . 1<=n<=1000第二行输入n个正整数 a1到an,代表每堆石子的数量。 ai<=1000Output每组数据输出最小得分Sample Input31 2 385 2 4 7 6 1 3 9Samp原创 2020-09-07 13:00:58 · 149 阅读 · 0 评论 -
石子归并 51Nod - 1021区间dp
N堆石子摆成一条线。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价。计算将N堆石子合并成一堆的最小代价。例如: 1 2 3 4,有不少合并方法1 2 3 4 => 3 3 4(3) => 6 4(9) => 10(19)1 2 3 4 => 1 5 4(5) => 1 9(14) => 10(24)1 2 3 4 => 1 2 7(7) => 3 7(10) => 10(20)括号原创 2020-09-07 12:55:40 · 131 阅读 · 1 评论