简单DP
这里是一只小小琪
这里是一个追星程序员女孩
展开
-
Ignatius and the Princess IV HDU - 1029
大概题意给你n个数字,在这n个数字中找出出现次数大于(n+1)/2的那个数思路刚开始的时候还在想如果有多个合法答案应该怎么输出,后来发现简直智障,怎么可能有两个数字出现的次数都大于(n+1)/2呢,肯定只有一个嘛。一共有两个做法:解法一我们用一个变量cnt记录这个数字连续出现了几次,如果下一个数字和cnt记录的数字一样就cnt++否则就cnt-- ,当cnt=0的时候更新记录当前数字的...原创 2019-04-16 10:52:22 · 185 阅读 · 0 评论 -
Milking Time POJ【3616】
题目链接大概题意有一个奶牛在不同的时间产奶量是不同的,现在有m个时间段,每个时间段【l,r】里可以产奶v斤奶,每次产奶后都要有r个时间的休息时间,问你在n个时间里,这个奶牛可以产奶的最大量是多少解题思路虽然一眼看过去就知道是个dp可是一脸懵逼的推了一会没推出来。。。dp【i】是第i个时间段里可以产的最大奶量,只需要控制前面的结束的时间大会小于后面的开始时间就好#include<s...原创 2019-05-09 21:07:50 · 155 阅读 · 0 评论 -
Phalanx HDU 【2859】
题目链接大概题意给你一个n*n的矩阵,找出最大的对称子矩阵。解题思路在位置(i,j)上,找出它的上面的位置和右面的位置相应对应的个数,和斜上方为起点的位置最大矩阵的最小值就是(i,j)位置上可以构成的最大的子矩阵#include<stdio.h>#include<string.h>#include<algorithm>using namespac...原创 2019-05-08 20:05:04 · 152 阅读 · 0 评论 -
最少拦截系统 【HDU1257】
题目链接 HDU1257某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹.怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到这里来求救了,请帮助计算...原创 2019-04-20 08:28:30 · 98 阅读 · 0 评论 -
Tickets 【HDU 1260】
题目链接 HDU 1260大概题意在售票窗口前有n个人排队买票,一个人可以有两种买票的方式,可以自己单独买,也可以和自己前面的人一起买,从8:00:00开始售票,问这n个人买完票是几点。解题思路虽然这个题写的还挺顺的。。。。但是我这个小菜虾用的方法是在是太麻烦了。。。看网上的方法用一维数组就可以了。。。我用了二维数组(安慰自己这样比较好理解)dp[i][0]的意思是第i个人单独排票前i个...原创 2019-04-19 15:52:13 · 353 阅读 · 0 评论 -
免费馅饼 【HDU 1176】
题目链接 HDU 1176都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径上接。由于gameboy平时老呆在房间里玩游戏,虽然在游戏中是个身手敏捷的...原创 2019-04-19 14:50:54 · 78 阅读 · 0 评论 -
Piggy-Bank 【POJ - 1384】
题目链接 DHU 1384题目大意有一个存钱罐空的时候的重量是a,装满的时候重量是b,现在有n种硬币,这n种硬币每种的数量都有无限多个,每个硬币有两个值,一个是硬币的重量和价值,问你当存钱罐装满的时候,这个存钱罐里的钱最少是多少解题思路其实就是个多重背包,我们把dp[0]的值赋值为0,1到(b-a)的值赋为无穷大,这样就是说后面的状态都是由0状态转移出来的,其他的就是个多重背包啦#inc...原创 2019-04-19 10:47:59 · 96 阅读 · 0 评论 -
Treats for the Cows 【POJ 3186】
题目链接 POJ 3186大概题意给你一个双向队列,每次可以从队首,或者从队尾取出元素,每次操作会获得相应的价值,第i个取出的元素a得到的价值就是i*a,问你能取出的最大价值是多少解题思路用 dp[i][j] 表示在这个数组的队首取了 i 个元素在队尾取了 j 个元素的时候的最大价值,那么很容易得出来转移方程式:dp[i][j] = max ( dp[i-1][j] + a[i] * (i...原创 2019-04-23 08:51:02 · 96 阅读 · 0 评论 -
Super Jumping! Jumping! Jumping! 【HDU 1087】
题目链接 HDU 1087题目大意给你一个长为n的序列,从中找出和最大的上升子序列题目大意其实就是个最长上升子序列的边形,求最长上升子序列的时候每个数字的权值都是1,最长上升子序列的大小就是权值为1时和最大的上升子序列,现在每个数字都有它自己的权值,所以再求最大上升子序列的时候加它自己的饿权值就好了,在这个过程中取最大值就是答案啦(- - 撒花- -)#include<stdio...原创 2019-04-18 10:33:40 · 60 阅读 · 0 评论 -
Doing Homework 【HDU 1074】
题目链接 HDU 1074大概题意现在有N项作业要做,每个作业有一个最晚的完成期限天和完成需要的天数,如果超过这个期限天数,超过一天扣掉一分,问你完成这N项作业之后,扣掉的最小的分数是多少。解题思路刚开始看这个题还以为是个贪心,然而感觉怎么贪都不太对… …最后查了一下题解是个状压dp,因为N很小,所以枚举每个状态,每个状态取最小值,到最后每个作业都写的时候,最小的扣分数就是答案了#in...原创 2019-04-18 09:47:51 · 252 阅读 · 0 评论 -
Longest Ordered Subsequence 【板子】【最长上升子序列】
题目链接题目大意给你n个数的序列,从中找出最长上升子序列的长度这就是个最长上升子序列的板子题(记录一下板子)#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int a[1005],g[1005];int main(){ int n; ...原创 2019-04-22 20:38:39 · 260 阅读 · 0 评论 -
Help Jimmy 【POJ 1661】
题目链接“Help Jimmy” 是在下图所示的场景上完成的游戏。场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当Jimmy落到某个平台上时,游戏者选择让它向左还是向右跑,它跑动的速度也是1米/秒。当Jimmy跑到平台的边缘时,开始继续下落。Jimmy每次下落的高度不能超过MAX...原创 2019-04-22 20:31:32 · 132 阅读 · 0 评论 -
Monkey and Banana HDU【1069】
题目连接 HDU 1069大概题意有n种类型的小方块,每个小方块有长、宽、高:xi , yi , zi 这个小方块的数量可以无限多个,这个小方块可以旋转,也就是xi也可以是它的高,yi也可以是它的高,想要让这些小方块摞叠起来,一个小方块a可以放在另一个小方块b上面要符合a的底的长和宽要严格小于b的底的长和宽,问你这些小方块可以叠加的最大高度是多少。解题思路一种小方块最多有6种不一样长宽高...原创 2019-04-17 21:32:11 · 180 阅读 · 0 评论 -
Max Sum Plus Plus 【HDU 1024】
题目连接 HDU 1024大概题意有n个数字组成的一个数组,让你从中找出m个不相交子序列(要求连续),使这m个子序列的和最大。解题思路虽然题目中没有给m的范围,但是m是一定要小于n的(n<1000000)我们先想一个比较朴素的算法:dp[i][j]:意思是将前j个数字分为i段得到的最大和,一定要取第j个数那么状态转移方程就是:dp[i][j]=max(dp[i][j-1]+a...原创 2019-04-17 21:11:59 · 86 阅读 · 0 评论 -
Jury Compromise 【POJ 1015】
题目链接 POJ 1015大概题意在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定。陪审团是由法官从公众中挑选的。先随机挑选n 个人作为陪审团的候选人,然后再从这n 个人中选m 人组成陪审团。选m 人的办法是:控方和辩方会根据对候选人的喜欢程度,给所有候选人打分,分值从0 到20。为了公平起见,法官选出陪审团的原则是:选出的m 个人,必须满足辩方总分D和控方总分P的差的绝对值|D-P|最小...原创 2019-04-22 16:51:36 · 153 阅读 · 0 评论 -
Common Subsequence【HDU 1159】
题目链接 HDU 1159大概题意给你两个字符串a和b,问这两个字符串的最大公共子序列的长度是多少解题思路我们定义一个数组dp[i][j]代表处理到字符串a的第i个字符和字符串b的第j个字符的时候,最长上升子序列的长度是多少。那么我们很容易得到递归方程式 if(a[i-1]==b[j-1]) g[i][j]=g[i-1][j-1]+1; else g[...原创 2019-04-22 16:16:37 · 74 阅读 · 0 评论 -
FatMouse's Speed 【HDU 1160】
题目链接 HDU 1160题目大意每一只老鼠有两个参数,在n只老鼠中找出最大数量的老鼠,这些老鼠的第一个参数是递增的,第二个参数是递减的,输出这个数量并且输出这些老鼠的编号。解题思路其实用的就是最长上升子序列,然后主要是要保存这些老鼠的编号,我本来使用vector模拟保存的,但是吧。。。。然后一直wa,以为是我的思路不对,其实后面发现是智障的b打成了a,在网上还学到用pre数组保存前一个的...原创 2019-04-20 19:23:07 · 161 阅读 · 0 评论 -
Making the Grade POJ【3666】
题目链接大概题意一条土路上有n段,每一段的高度可能各不相同。现在要把这条路修成单调递增或者单调递减的路,修路的花费是abs(i,j)i是修之前的高度,j是修之后的高度。问你修路的最小花费是多少解题思路刚开始的代码 for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { i...原创 2019-05-09 21:16:13 · 147 阅读 · 0 评论