
dp
dp
FILWY_M
一只正在慢慢成长的小菜鸡.......
展开
-
HDU 1260 Tickets(dp)
Tickets不得不说这道题真的是一道简单的dp问题(不过比赛的时候居然被卡住了,想哭…………),特判一下k==1的时候,k!=1的时候就遍历每一个人,此时他有两种选择,一是前一个人一起买,二是他单独买,此时的状态转换方程应该为dp[i]=max(dp[i-1]+t1[i],dp[i-2]+t2[i-1]);#include <iostream>#include<cstri...原创 2019-07-19 20:43:49 · 113 阅读 · 0 评论 -
HDU2082 找单词(多重背包)
传送门题意很简单,这道题可以用多重背包来做,好像还有一种做法是母函数,不过现在还没有学,等后面学了再说吧,下面是代码#include <iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<climits>#include<vecto...原创 2019-07-20 10:40:07 · 146 阅读 · 0 评论 -
HDU1398 Square Coins(多重背包)
题目传送#include <iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<climits>#include<vector>#include<queue>#include<string>#def...原创 2019-07-20 10:47:54 · 131 阅读 · 0 评论 -
HDU - 1257 最小拦截系统(lower_bound)
传送门可以用lower_bound优化一下,lower_bound的返回值是指向第一个大于等于value的地址,如果序列里面的数全部大于value则返回指针最后一个元素的下一个位置,比如说有一个数组a[5]={1,2,3,4,5},我们查找的值value=6,在数组里面找不到比value大的数,所以lower_bound返回一个指针指向a[4]的下一个,相当于a[5]#include <...原创 2019-07-30 16:35:45 · 232 阅读 · 0 评论 -
POJ3264Balanced Lineup(线段树&&RMQ)
题目传送门题意就是给你n个数,然后q次询问,每一次给你一个区间(l,r),让你输出这个区间的最大值与最小值之差,一般做法通过遍历这个区间的每一个数肯定是不行的,因为n非常大会超时这种题有两种做法,一种是RMQ(Range Minimum/Maximum Query),即区间最值查询,是一种dp动态规划的方式,可以看这个博主的博客讲的很详细还有一种做法就是线段树。方法一RMQ#inclu...原创 2019-07-23 15:34:09 · 174 阅读 · 0 评论 -
免费馅饼 HDU - 1176(dp)
传送门题意:有0-10共十一个点,最开始的时候位于5这个位置,他每一秒只能向左或者右移动一个位置,求他最大能够接到多少个馅饼。开一个二维dp数组,dp[i][j]表示在弟i秒的时候,在j位置最多能够接到的最大馅饼的数量,所以这里状态转换方程就是dp[i][j]+=max(dp[i-1][j],max(dp[i-1][j-1],dp[i-1][j+1]));这里我们要考虑一下j0和j10的情况就...原创 2019-08-01 21:05:48 · 169 阅读 · 0 评论