dp
文章平均质量分 50
kicksilver7
人丑多读书!!!
展开
-
HIT 1942 D - OS进程调度
题目链接:https://vjudge.net/contest/161075#problem/D题解:一道变异的背包的题目,自己卡在了纪录结点的地方,最后,直接用了一个三维的队列才弄出来的 。(谨记)代码:#include <cmath> #include <cstdio> #include <queue> #include <cstring> #include <iostream> #includ原创 2017-04-29 09:31:17 · 143 阅读 · 0 评论 -
codeforces An express train to reveries 814B
题目链接: http://codeforces.com/contest/814/problem/B 题意: 找到一串数字,它跟A,B串(互相)只有一个不同。 题解: 通过贪心的思想可以知道,如果要满足条件,那么就只会出现两种情况,要么一个不同,要么两个不同。 得到这个以后就简单很多了,直接进行暴力就行了。 代码: #include #include #include #i原创 2017-07-10 14:15:08 · 201 阅读 · 0 评论 -
codeforces Sagheer, the Hausmeister 812B
题目链接: http://codeforces.com/problemset/problem/812/B 题意: 某一个楼有N层,每一层层M+2个房间,第一个房间和最后一个房间表示的是左楼梯和右楼梯。现在管理员处于最底层的左楼梯处,管理员关灯的时候有两个原则: 1.必须要将一层楼的灯全部关闭以后,才可以去上面的楼层。 2.管理员每次移动一个位置的时间均为1S,并且关灯的动作时不算时间原创 2017-07-10 09:21:04 · 226 阅读 · 0 评论 -
codeforces 682D Alyona and Strings
题目链接:http://codeforces.com/problemset/problem/682/D题意:给你两串字符串,让你找出这两串字符串K个公共子串,要求的是其顺序不发生改变并且它的和要求最大。题解:当k为1的时候,我们不难想到这是一个LCS,但是不同的地方在于它不是1个,而是多个。所以,我们很容易想到在LCS的基础上加一纬K来进行思考,但是在具体实现的时候会发现不够,需要再开一纬开是不是在原创 2017-07-16 09:21:16 · 196 阅读 · 0 评论 -
51NOD 1201 整数划分
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1201题解:一道很好的dp题目,首先我们先要明确dp的含义。这里开的是二维dp,表示i这个数划分为j个数的方案数。(这里j表示的不是max值) 当我们对其进行划分的时候,可以这么去想,我们要把一个数划分为4的时候,那么就相当于在(N-4)这个的基础上这些数进行加1原创 2017-07-11 10:23:51 · 256 阅读 · 0 评论 -
51nod 1202 子序列个数
题目链接:https://www.51nod.com/onlineJudge/submitDetail.html#!judgeId=250782题解:一道很好的dp的题目,这里我用的是一维的dp[i],i表示的是位置是i的时候能够组成的不同子序列的个数。 在不考虑重复的情况下,我们可以很容易的推出这个dp的转移的方程 dp[i] =dp[i-1]*2+1; 但是在我们考虑到重复的情况的时候,我原创 2017-05-17 21:16:38 · 193 阅读 · 0 评论 -
1051 最大子矩阵和
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1051题解:一道很好的思维题,主要是将二维的数组压缩称为一维的数组,然后就按常规的做法就行了。(这里有一个坑点,这里的输入的时候,是m在前,n在后的。)代码:#include <cstdio> #include <cstring> #include <iostrea原创 2017-05-06 20:00:07 · 188 阅读 · 0 评论 -
HDU 2089
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089题解:数位dp代码:#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define met(a,b) memset(a,b,sizeof(a)) #原创 2017-04-23 16:43:08 · 187 阅读 · 0 评论 -
ZOJ 3331
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3331题解:双塔dp。代码:#include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #def原创 2017-04-16 20:43:11 · 276 阅读 · 0 评论 -
51NOD 1021 石子归并
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1021题解:区间dp。 区间dp的样子大致都差不多。模版: for(int i=1;i<=n;i++) dp[i][i]=0; // 初始化 for(int len=2;len<=n;len++) //原创 2017-04-16 10:41:37 · 342 阅读 · 0 评论 -
01背包问题
01背包的具体的原理(推荐dd大牛的《背包九讲》) 例题:HDU 2602 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2602 题解: 题目大意: 给你N个物品,一个容量为M的背包。并且给出你N个物品的价值,以及他们的容量,让你求出不超过背包容量的条件下最大的价值。 一道非常典型的01背包的模板题目。 没有优化空间的代码:#inc原创 2017-03-07 20:50:28 · 142 阅读 · 0 评论 -
ZOJ 2972 Hurdles of 110m
题目链接:https://www.nitacm.com/problem_show.php?pid=17880题解:题目大意: 给你n段的跑步,你的能量最多为m(同时也代表初始的能量),然后给你n行,每行给你t1,t2,t3,以及e1,e3前面三个表示三种跑步的方式所消耗的时间,后面的两个表示,选择第一种的时候会消耗的能量,以及第三种时会增加的能量,(选择第二种不会消耗能量),问你最短的时间。 0原创 2017-04-02 10:57:29 · 508 阅读 · 0 评论 -
ZOJ 8th Anniversary Contest Unrequited Love
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3310题解:一道比较水的dp,一开始没有想到用两次dp来解决成环的这个问题。 具体看代码。代码:#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using n原创 2017-04-15 10:01:34 · 293 阅读 · 0 评论 -
51nod 1270 数组的最大代价
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1270题解:题目本身不难,但是题目的大意自己读了很久才理解。 题目就是让你自己创建大小为n的数组,其中里面元素的值的范围为[1,b[i]]注意这里是闭区间,问你,求你自己构建的a数组的最大代价是多少。 思路其实很简单,首先我们可以直接用贪心的思想去考虑,a[i]原创 2017-04-15 20:07:14 · 192 阅读 · 0 评论 -
HDU 1114
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114题解:完全背包模版题代码:#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define met(a,b) memset(a,b,sizeof(a))原创 2017-04-15 21:37:30 · 150 阅读 · 0 评论 -
HDU 2191
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2191题解:完全背包模版题代码:#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define met(a,b) memset(a,b,sizeof(a))原创 2017-04-15 21:52:33 · 296 阅读 · 0 评论 -
51nod 1101 换零钱
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1101题解:一道完全背包的问题。代码:#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define met(a,b原创 2017-04-16 09:55:06 · 177 阅读 · 0 评论 -
HUST 1422
题目链接:http://acm.hust.edu.cn/problem/show/1422题解:母函数代码:#include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define met(a,b) memset(a,b,siz原创 2017-04-29 19:33:59 · 162 阅读 · 0 评论 -
51nod 最大M子段和
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1052题解:自己的dp太弱,一开始只是想到dp[i,j],表示前i个分成j个的最大和,但是不会推。。。。。。 后来看了网上大佬的讲解,感觉颇深。 链接:http://blog.csdn.net/winter2121/article/details/728484转载 2017-08-14 20:50:28 · 178 阅读 · 0 评论