dp
对你说的对
这个作者很懒,什么都没留下…
展开
-
HDU DP记录路径
1 简单描述给出一些数据,每一对数据代表一只老鼠的体重和速度,从这些数据中挑选出任意一部分(仅输出答案的一种),证明结论,老鼠越肥,跑的越慢。在这些数据中找出尽可能多的数据来证明观点。2 思路#includeusing namespace std;struct node{ int weight; int speed; int no;}m原创 2017-06-25 23:27:49 · 267 阅读 · 0 评论 -
dp专题 第十六题 踩方格
1、简单描述踩方格,每次只能移动一步,只能移到北、东、西三个方向。一旦走过就不能再走这个方格,走n步,共有多少种走法的方案。2、思路#includeusing namespace std;int f[30];int n,i,j;int main(){ cin>>n; f[0]=1; f[1]=3; for (i=2;in;i++) f[i]=f[i-1]+f[原创 2017-04-17 11:56:28 · 283 阅读 · 0 评论 -
dp专题 第十九题 最低通行费
1、简单描述一个n*n的正方形方格,在规定时间内穿过,需要的最少通行费是多少。2、思路#include using namespace std;const int INF = 2147483647 ;int N;int node[101][100],money[101][101] ;int main() { cin>>N; for(int i=1;i原创 2017-04-17 15:07:57 · 308 阅读 · 0 评论 -
dp专题 第二十三题 大盗阿福
1、简单描述一共有n家店铺,不能抢劫相邻的两家店铺,最多能抢多少钱。2、思路#includeusing namespace std;int t,n,ans;int f[100001],a[100001];int main(){ cin>>t; while(t--) { cin>>n; memset(f,0,sizeo原创 2017-04-17 15:15:39 · 343 阅读 · 0 评论 -
dp专题 第二十四题 鸣人的分身
1、简单描述能量为m,分身个数有n个,共多少种不同的分身方案2、思路#includeusing namespace std;int dp(int m,int n){ if(m==0||n==1)return 1; if(mn)return dp(m,m); else return dp(m,n-1)+dp(m-n,n);}int main(原创 2017-04-17 15:19:00 · 330 阅读 · 0 评论 -
dp专题总结
1、做题感觉大部分时候看到题感觉一头雾水,在明确告诉这是动态规划的题时会刻意往这方面想,缩小问题规模。如果没说的话,可能根本不会朝这方面去想。感觉好难做起来理解起来都很费劲,专题中有很多题是稍微变了一下,就晕了,会在各方面细节出问题。就像登山问题和合唱团问题,感觉他们一模一样,样例也通过了,就是过不了,心累。2、简单的动态规划题基本能用下面四步解决1、 缩小问题规模,寻找合适的子问原创 2017-04-17 15:31:09 · 200 阅读 · 0 评论 -
HDU1025 Constructing Roads In JGShining's Kingdom(DP-LIS算法)
Problem DescriptionJGShining's kingdom consists of 2n(n is no more than 500,000) small cities which are located in two parallel lines.Half of these cities are rich in resource (we call them rich原创 2017-09-28 16:34:06 · 195 阅读 · 0 评论 -
Game (博弈+DP)
链接:https://www.nowcoder.com/acm/contest/123/G来源:牛客网题目描述 Alice and Bob are playing a stone game. There are n piles of stones. In each turn, a player can remove some stones from a pile (the number must...原创 2018-05-20 15:32:31 · 284 阅读 · 1 评论 -
2018牛客多校训练---run(DP)
链接:https://www.nowcoder.com/acm/contest/140/A来源:牛客网题目描述White Cloud is exercising in the playground.White Cloud can walk 1 meters or run k meters per second.Since White Cloud is tired,it can't...原创 2018-07-22 23:00:56 · 256 阅读 · 0 评论 -
UVA1401 - Remember the Word(字典树+DP)
Time limit: 3.000 secondsNeal is very curious about combinatorial problems, and now here comes a problem about words. Knowing that Ray has a photographic memory and this may not trouble him, Neal gi...原创 2018-08-24 09:46:40 · 198 阅读 · 0 评论 -
HDU 6249 Alice’s Stamps(DP)
Alice likes to collect stamps. She is now at the post office buying some new stamps.There areNNdifferent kinds of stamps that exist in the world; they are numbered11throughNN. However, stamps are...原创 2018-10-21 21:22:17 · 295 阅读 · 0 评论 -
dp专题 滑翔翼问题
1、简单描述城市中一共有N幢建筑,初始时,可以在任何一幢建筑的顶端。他可以选择一个方向逃跑,但是不能中途改变方向。他只能往下滑行。希望尽可能多地经过不同建筑的顶部,他最多可以经过多少幢不同建筑的顶部。下降子序列的最长长度。2、思路#includeusing namespace std;int n,m,i,j,k,h[110],f[110],g[110];int mai原创 2017-04-17 11:35:41 · 228 阅读 · 0 评论 -
dp专题 第十三题 最大上升子序列的和
1、简单描述给出一个序列,求该序列最大上升子序列的和。注意:最长上升子序列的和不一定是最大上升子序列的和。2、思路#includeusing namespace std;int arr[1001];int Max[1001];void Maxsum(int k){ memset(Max,0,sizeof(Max)); for(int i=1;ik;i+原创 2017-04-17 11:30:43 · 183 阅读 · 0 评论 -
dp专题 第十题 数字组合
1、简单描述有n个正整数,找出其中和为正整数k的可能的组合方式。输出有多少种方案数?2、思路#includeusing namespace std;int f[21][1001],n,line[30],k;int main(){ cin>>n>>k; for(int i=1;i { cin>>line[i];原创 2017-04-17 11:20:18 · 290 阅读 · 0 评论 -
dp专题 第二题 最大子矩阵
1、简单描述输入一个n*n的矩阵,输出最大的子矩阵之和2、简单思路#includeusing namespace std;int fun(int b[101],int n){ int i,Max,c; c=0; Max=0; for(i=1;i { if(c>0) c+=b[i];原创 2017-04-05 22:27:57 · 230 阅读 · 0 评论 -
dp专题 第二十六题 滑雪
1、简单描述输入c*r的矩阵,元素表示山头的高度,求最长滑雪的区域长度。2、思路#include using namespace std;int dx[]={-1,0,1,0};int dy[]={0,1,0,-1};int r,c;int opt[101][101];int node[101][101];bool ok(int i,原创 2017-04-06 21:06:33 · 194 阅读 · 0 评论 -
dp专题 第四题 最长公共子序列
1、简单描述多次测试输入,输入两个字符串,编号是上升序列,查找他们最长公共子序列的长度。2、思路# include using namespace std;int main(){ string s1,s2; while(cin>>s1>>s2) { int arr[1001][1001]; memse原创 2017-04-08 10:54:51 · 232 阅读 · 0 评论 -
dp专题 第五题 吃糖果
1. 简单描述一盒糖果共n块,可以一天吃两块也可以一天吃一块,吃完为止共有多少不同的吃法?2.思路#includeusing namespace std;int sum(int n){if(n==1||n==2) return n;else return sum(n-1)+sum(n-2);}int main(){int n;原创 2017-04-09 14:20:28 · 220 阅读 · 0 评论 -
dp专题 第三题 采药
1. 简单描述01背包问题总时间为n,总药材数为m。各种药材消耗时间t【i】,价值v【i】,求在规定时间内,能采到的草药最大价值数。2.思路#includeusing namespace std;struct Herb{int time;int value;}herb[1001];int main()原创 2017-04-09 14:35:36 · 251 阅读 · 0 评论 -
dp专题 第八题 最长公共子上升序列
1、简单描述两个序列,求它们最长公共子序列的长度,并输出这个公共子序列。2、思路#includeusing namespace std;struct Node{int val = 0;vectorv;};int main(){int a[501], b[501];Node dp[501];int m, n;cin >> m;f原创 2017-04-09 15:22:26 · 189 阅读 · 0 评论 -
dp专题 第六题 登山
1、简单描述山上一个有N个景点,并且决定按照顺序来浏览这些景点。不连续浏览海拔相同的两个景点。并且一旦开始下山,就不再向上走了。尽可能多的浏览景点,找出最多可能浏览的景点数。2、思路#includeusing namespace std;#define N 1005int n,ans;int a[N],f1[N],f2[N];int main(){ cin>原创 2017-04-10 08:33:50 · 374 阅读 · 0 评论 -
dp专题 第九题 移动路线
1、简单描述从左下角到右上角,只能向上或者向右移动,一共有多少种移动的方案数。2、思路#includeusing namespace std;int sum(int m,int n){ if(m==1||n==1) return 1; else return sum(m,n-1)+sum(m-1,n);}int main(){原创 2017-04-10 09:01:38 · 430 阅读 · 0 评论 -
dp专题 第二十一题 三角形最佳路径
1、简单描述给出一个三角形形状数组,寻找从上到下和最长的路径和。2、思路#includeusing namespace std;int n;int a[101][101];int f[101][101];int main(){ cin>>n; for(int i=1;i for(int j=1;j {原创 2017-04-10 09:31:14 · 217 阅读 · 0 评论 -
dp专题 第十八题 买书
1、简单描述小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元。有多少种买书的方案。注意:n元钱必须全部用来买书,每种书的数目不限。2、思路完全背包问题#includeusing namespace std;int v[10];int f[1010],i,j,n;int main(){ cin>>n; v[1]原创 2017-04-17 10:45:57 · 324 阅读 · 0 评论 -
dp专题 第一题最长上升子序列
1、简单描述给出一个序列,找出他最长上升子序列的长度2、思路#include using namespace std;int b[1000];int maxlen[1000];int main(){ int i,j,n; cin>>n; for(i=1;i { cin>>b[i]; }原创 2017-04-05 11:14:47 · 314 阅读 · 0 评论