简单基础经典dp
sega_handsome
这个作者很懒,什么都没留下…
展开
-
【最大子矩阵和】HDU1559-最大子矩阵 + 网络赛北京 (变形)
给你一个m×n的整数矩阵,在上面找一个x×y的子矩阵,使子矩阵中所有元素的和最大。int sum[N][N];int a[N][N];int main(){ int n,m; int T;sf("%d",&T); while(T--){ int x,y; sf("%d%d%d%d",&n,&m,&x,&y); mem(sum转载 2017-09-23 21:23:14 · 576 阅读 · 0 评论 -
计蒜客 The Heaviest Non-decreasing Subsequence Problem dp LIS变形 || 线段树+dp
题意:每个数有一个val和weight,如果val < 0 weight 为 0 , val >= 1e4 weight 为5 ,其余为1.让你求一哥序列使得为weight最大并且val是不下降的.心得:悲惨背锅。。。不知道怎么该LIS的nlogn做法。。 结果看了挺久。。 最后队友想的方法大概是 其实这个题仔细想一下就是把价值为0的去掉,然后把价值为5的分成5个1的放进去,然后求一次LIS,转载 2017-09-25 14:33:43 · 198 阅读 · 0 评论 -
Codeforces Round #374 (Div. 2) C. Journey DPor最短路
题意给你一个n点m边的图,让你从1走到n,找到一条经过尽量多点的路径,且路径边权和小于等于T然后输出路径。分析:自己原本打算5000*5000×vector 果断爆了。。 然后用最短路的方式,dp【Node】里面记录cost和num,又在case35TLE。看了别人,还是要好好学学记录路径的方法。。。 2. 别人的代码。。400ms 最短路spfa(一敲)220600 KB (所以其实原创 2017-09-10 10:29:04 · 254 阅读 · 0 评论 -
Codeforces Round #272 (Div. 2) E. Dreamoon and Strings 动态规划
http://codeforces.com/contest/476/problem/E 参考http://www.cnblogs.com/qscqesze/p/5794709.html题意给你一个串S,和另外一个串P把k从0到|S|枚举,然后问你去掉k个字符后,s串里面最多有多少个不重叠的p字符串题解:dp,dp[i][j]表示考虑到第i个位置,去掉了j个字符的最大值然后我们对于每一个位置,先暴转载 2017-09-19 20:35:37 · 369 阅读 · 0 评论 -
Approximating a Constant Range CodeForces - 602B dp or 队列
想了很久想不出怎么用 尺取法做。。 看了别人的dp,好好啊。 http://blog.csdn.net/gungnir0711/article/details/50280247 也看到有用单调队列+尺取法的 , 也可以用队列做吧。。int main(){ int n; scanf("%d",&n); int ans=0; f转载 2017-08-10 11:02:15 · 230 阅读 · 0 评论 -
51Nod 1183 编辑距离(DP—编辑距离问题)
L式距离: 51Nod 1183 编辑距离(DP—编辑距离问题) 编辑距离,又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。char s1[105],s2[N];int m,n,k;int dp[N][105];inline void update(int &a,int b){原创 2017-10-01 20:23:58 · 274 阅读 · 0 评论 -
Teamwork Gym - 101492E 基础dp
【例题6】在一个夜黑风高的晚上,有n(n <= 50)个小朋友在桥的这边,现在他们需要过桥,但是由于桥很窄,每次只允许不大于两人通过,他们只有一个手电筒,所以每次过桥的两个人需要把手电筒带回来,i号小朋友过桥的时间为T[i],两个人过桥的总时间为二者中时间长者。问所有小朋友过桥的总时间最短是多少。参考http://blog.csdn.net/acm_jl/article/details/510335原创 2017-10-01 20:38:45 · 708 阅读 · 0 评论 -
HDU6170-Two strings 多校9 dp
Two strings Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)转载 2017-08-23 16:31:52 · 206 阅读 · 0 评论 -
Codeforces 812B-Sagheer, the Hausmeister
**题目的意思是给出一栋楼的灯的状态,每一栋一格花费1分钟,只能在两端的楼梯上楼 且只有一层的灯全关闭才能上楼,问最小时间。最下面是一楼,最上面是顶楼,人初始 在(n,1)的位置**比赛的时候一直想着贪心,但是还是在很多细节错了。。 居然没有想着写dp。。。char s[20][110];int mp[20][110];int n,m;int sum[20][110];int laye原创 2017-08-25 13:26:59 · 215 阅读 · 0 评论 -
记忆化搜索 dp(dfs)-帮助Jimmy POJ--1661
感悟:首先自己没有把题目都看透。结果在看一些别人的题解的时候在疑惑如果平板高度相等的时候怎么办。也浪费了时间,也没有看到一开始给只有一个横坐标体会:虽然知道是有两个状态转移,但是怎么表示,如果用的是那种循环式的dp的话,达到下一种状态的判断怎么写,而且我居然没有考虑从上到下的高度排序。。然后看别人的代码,感觉用dfs(记忆化搜索)写的比较看得懂,而且还有一种数位dp的模板的感觉。。原创 2017-03-07 17:36:11 · 250 阅读 · 0 评论 -
codeforce 416 div2 C - Vladik and Memorable Trip 线性dp
这个dp自己想不到,, 记得之前的简单的线性dp 其实可以作为扩展 题目链接 **题意给一个长度最大为5000的数组,每个数是0~5000之内的整数,现在要求选k段不相交的子线段,满足对于每一个数字,要么都没有被选,要么在同一段上(比如1,2,1,2,区间【1,3】=1,2,1就是不合法的,因为另外一个2不在这个子线段上),然后分数定义为每一段里所有不同数的异或(xor)相加,求最大的分数。转载 2017-05-29 22:14:00 · 253 阅读 · 0 评论 -
Codeforces 831D Office Keys 贪心or dp
https://vjudge.net/problem/CodeForces-831D 这个地方的贪心想不出来。。。LL a[maxn],b[maxn];void solve(){ sort(a+1,a+n+1); sort(b+1,b+k+1); LL ans=2*inf; for(int i=1;i<=k-n+1;++i){ LL sum=0;原创 2017-08-11 22:26:13 · 304 阅读 · 0 评论 -
Codeforces 837D - Round Subset 【DP】
题意:给出n个数,让你从中选出k个数,使得它们乘积的后缀0最多,输出这个值。Input3 2 50 4 20Output3Input5 3 15 16 3 25 9Output3Input3 3 9 77 13Output0 NoteIn the first example there are3 subsets of 2 numbers. [50, 4] has product 200 wi原创 2017-08-19 08:27:45 · 275 阅读 · 0 评论 -
[Gym-100819S] dp+离散化
这道题是挺好的。。可是怎么我再做还是不会。看来忘题和映像不深很严重。。https://vjudge.net/contest/170144#problem/H 看https://vjudge.net/solution/9660165int n;int dp[mxn];struct Node{ int l,v,r; bool friend operator<(Node a,Node原创 2017-08-12 09:10:15 · 338 阅读 · 0 评论 -
简单dp训练1
2017年08月13日 基础dp训练 1: 思路 最大子矩阵和的方法和最大字段和一样 可是我一开始还是不会。。int a[mxn][mxn];int sum[mxn][mxn];int main(){ int n; while(~sf("%d",&n)){ mem(sum[0],0); for(int i=1;i<=n;++i){原创 2017-08-13 14:05:25 · 198 阅读 · 0 评论 -
HDU - 3450 树状数组优化dp
https://vjudge.net/problem/HDU-3450直接用dp[i]表示以最后一个结尾的完美序列的个数。。然后就可以用树状数组优化了int num[N],val[N],cnt,tree[N<<2];const int maxn=500010;int d,n;int dp[N];int haxi(int x){ return lower_bound(val+1,val原创 2017-08-14 10:31:30 · 433 阅读 · 0 评论 -
Gym - 100923A Por Costel and Azerah (水dp)
题意:给你一个序列,问你有多少个子序列的元素和为偶数。于每一位可以选择取或不取,对于奇数dp结果为上一位的奇数情况和偶数情况之和,对于偶数,则是偶数情况是偶数情况*2和奇数情况是上一位奇数情况*2,int a[mxn];LL dp[mxn][2];int main(){ // freopen("in.txt","r",stdin); freopen("azerah.in","r",s原创 2017-08-21 20:09:36 · 432 阅读 · 0 评论 -
codeforces Gym - 101485 D Debugging 记忆化dp
其实这个和那个扔水球的题目是不同的。这个 题目记忆化就可以了,子结构的性质挺明显的,而且时间复杂度其实在记忆化之后小。#include<iostream>#include<string>#include<cstring>#include<cmath>#include<cstdio>#include<stack>#include<queue>#include<vector>#inclu原创 2017-10-04 10:25:23 · 368 阅读 · 0 评论 -
Codeforces 667C Reberland Linguistics 【dp】
参考:http://www.cnblogs.com/qscqesze/p/5448085.html题意给出一个字符串,选出大于4个字符当前缀,然后把后面的字母分成2个或者3个的小字符串,要求每个字母都要包括并且在同一个分词方案里面没有连续的相同小字符串,字典序输出所有可以分出来的小字符串。思路:考虑dpdp[i][0]表示处理到第i个字符,截取(i, i + 2)是否可行;dp[i][1]表示处转载 2017-10-29 19:30:30 · 266 阅读 · 0 评论 -
Codeforces Round #460 (Div. 2)D. Substring
链接:http://codeforces.com/contest/919/problem/DD. Substring time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard outputYou are given a grap...转载 2018-04-28 15:59:46 · 263 阅读 · 0 评论 -
The Monochrome Picture SGU - 458 线段树优化dp
参考:https://vjudge.net/solution/2633272题意: 给定一个序列,删除最少的数使得任意两个相邻的数的abs不会相差1,看来自己还是不太熟悉线段树,原本居然不知道怎么处理这个地方的用线段树的优化..#include<bits/stdc++.h>using namespace std;#define up 1000000#define N 100050#defin原创 2017-10-24 11:29:35 · 283 阅读 · 0 评论 -
codeforces 577B B. Modulo Sum(背包+dp)
就是个二维rmq裸题。。#include<bits/stdc++.h>using namespace std;#define maxn 510#define INF 0x3f3f3f3fint dp[maxn][maxn][10][10];int mm[maxn];int val[maxn][maxn];void initRMQ(int n,int m){ for(int i转载 2017-09-06 20:34:39 · 203 阅读 · 0 评论 -
Codeforces Round #448 (Div. 2) C. Square Subsets
C. Square Subsetstime limit per test4 seconds memory limit per test256 megabytes inputstandard input outputstandard output Petya was late for the lesson too. The teacher gave him an additional t转载 2017-11-29 09:28:23 · 145 阅读 · 0 评论 -
CF:Problem 383D - Antimatter 分治DP
参考:http://blog.csdn.net/u011466175/article/details/19689665题目:http://codeforces.com/contest/383/problem/DD. Antimatter time limit per test 1 second memory limit per test 256 megabytes input转载 2017-11-29 14:51:54 · 223 阅读 · 0 评论 -
Homework of PE dp 正难则反
Problem D: Homework of PE Time Limit: 1 Sec Memory Limit: 128 MB Submit: 117 Solved: 37 [Submit][Status][Web Board] Description At the begining of PE class, the math teacher comes to the class,转载 2017-12-02 09:09:10 · 245 阅读 · 0 评论 -
BZOJ 4300: 绝世好题 动态规划
转自:http://www.cnblogs.com/qscqesze/p/6042216.html4300: 绝世好题题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4300Description 给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi&bi-1!=0(2<=i<=len)。Input 输入文件共2行。 第一行包转载 2017-12-03 10:49:18 · 168 阅读 · 0 评论 -
Codeforces Round #406 (Div. 1) A. Berzerk 记忆化搜索
参考:https://www.cnblogs.com/qscqesze/p/6628793.html A. Berzerk 题目连接:http://codeforces.com/contest/786/problem/A DescriptionRick and Morty are playing their own version of Berzerk (which has nothing i转载 2017-11-28 11:53:57 · 252 阅读 · 0 评论 -
cf待补 (hash 的写法)
别人的代码:#include <bits/stdc++.h>#define mp make_pair#define pb push_back#define f first#define s second#define ll long longusing namespace std;const int N = int(1e6) + 10;const int mod1 = int(1e9) +转载 2017-12-17 14:25:59 · 271 阅读 · 0 评论 -
简单dp,HDU 2859 Phalanx
二维的dp,dp[i][j]为第i行第j列所能够组成的最大对称子矩阵的长度。关于对角线完全对称的矩阵!转移方程为:dp[i][j]=dp[i-1][j+1]+1 ; 注意这里是由点(i-1,j+1)推过来的。 觉得自己没法表述,就单单看代码吧#include #include #include #include #include using namespace std;const i原创 2017-03-07 13:34:47 · 201 阅读 · 0 评论 -
Post Office POJ - 1160
转自http://blog.csdn.net/accry/article/details/6607593 【POJ1160】POST OFFICE 邮局问题【题目大意】:用数轴描述一条高速公路,有V个村庄,每一个村庄坐落在数轴的某个点上,需要选择P个村庄在其中建立邮局,要求每个村庄到最近邮局的距离和最小。【题目分析】:经典DP1、考虑在V个村庄中只建立【一个】邮局的情况,显然可以知道,将邮局建立在转载 2017-08-10 15:47:34 · 224 阅读 · 0 评论 -
简单dp,first wrong POJ 3616 Milking Time
在一个农场里,在长度为N个时间可以挤奶,但只能挤M次,且每挤一次就要休息t分钟;接下来给m组数据表示挤奶的时间与奶量求最大挤奶量一个简单的动态规划,用一个dp表示在第i个时间段挤奶量的最大值,从i+1更新到M自己没有做出来的原因:这道题如果收获都是1的话,其实就是贪心了,然后对于这道dp,自己在表示“包含选了i个物品后的结束时间”的时候遇到了麻烦。。。就不会了看这个原创 2017-03-06 22:21:31 · 299 阅读 · 0 评论 -
UVA - 1629 切蛋糕dp
自己终于能做出来了,主要是看到这里的子问题,所以才能够这样想的,而且当然用的就是记忆化搜索了但是我的代码是920ms,赶紧看看别人的代码优化,,#include#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f转载 2017-04-06 22:27:36 · 295 阅读 · 0 评论 -
uva 01背包记录路径
反正我是不会,抄别人的代码的#include#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 0x3f3f3f3fusing namespace std;const int max转载 2017-03-12 21:46:36 · 475 阅读 · 0 评论 -
分组背包:hdu1712 hdu3033
#include#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 0x3f3f3f3f#define bug1 cout<<"bug1"<<endl;#define bug2 co原创 2017-03-17 22:22:12 · 284 阅读 · 0 评论 -
选拔赛之dp
第102题: 小P 的问题课堂2大概能看的出是dp,但是自己不会写转移方程而且就算会了也不会优化,,多学的东西:1:hash前要去重,2:这里原本的复杂度是超的,所以用了f和tot来记录重复计算的东西。。。很巧妙。。3:hash的方式用这种函数的方式更好。#include #include #include #include #include #inc转载 2017-04-11 09:24:12 · 204 阅读 · 0 评论 -
Multiplication Puzzle POJ - 1651 区间dp
转自:http://blog.csdn.net/power721/article/details/5804319自己实在太逗了。。因为有个数拿了之后会对后面有影响。。所以我还打算把a[I]=0,然后dfs来记录,,但是不太可能表示状态。。;然后看了别人的题解。。其实这就只是这道题实质上就是矩阵连乘,动态规划——矩阵连乘问题因为:如转载 2017-04-28 12:10:32 · 245 阅读 · 0 评论 -
DP两道关于递增非递增的题目
POJ - 3666 首先我们会发现,最终修改后,或者和前一个数字一样,或者和后一个数字一样,这样才能修改量最小。不严格递减最后修改完成后的各个数一定是原序列中的某一个数这个大概可以这么理解:原序列,从左到右扫过去,如果左边的大于右边的,要嘛左边的减掉使其等于右边的,要嘛右边的加上使其等于左边的。那个思路是这样:dp[i][j] = min(dp[i-1][k])+转载 2017-03-10 16:46:45 · 318 阅读 · 0 评论 -
dfs,,类似树的想法
P - FatMouse and Cheese HDU - 1078 看了是dfs。但是自己写的时候没有按照那个写。。而且题目还没看好。他是只能水平或垂直,不能再转向了。。别人ac代码:#include #include #include using namespace std;int n,k,dp[105][105],a[105][105];int to[转载 2017-03-19 22:31:41 · 275 阅读 · 0 评论 -
cf 414B
本来可以算是自己能独立做出来的dp的,但是自己因为一个小小的自己犯的错误,,还是要看了下别人的题解。#include#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define inf 0x3f3f3原创 2017-03-19 15:12:29 · 273 阅读 · 0 评论 -
17金山WPS 补题 D
说是DP虽然当时当做人排队看出来了。。。然后好像写出来的公式是错的。。时间也不够,就不知道怎么搞了。。转载 2017-04-28 11:34:31 · 247 阅读 · 0 评论