![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dp
Gloria971111
From InSane, To what ?I don't know !
展开
-
动态规划小心得(结合数字三角)
我以前一直觉得动态规划就是01背包问题,现在想来还真是傻得很,其实动态规划是一种应用十分广泛的一种分析问题的方法,基本的特点就是问题可以分解,即具有最优子结构性质,就是一个问题可以分解成多个子问题来解而且在解得过程中状态确定就是就是确定了,不再影响下一个,其核心就是状态和状态转移方程,就是先找到一个思路,然后实现这个思路的办法有很多种,一般来说递归会超时,方法就是记忆化搜索和递推,这两个方法在数字三原创 2017-08-16 10:17:47 · 299 阅读 · 0 评论 -
hdu3368
#include<iostream>using namespace std;#include<math.h>#include<string.h>#include<algorithm>int n,q;int num[100005];int dp[100005][20];int f[100005];void init(){ ...原创 2018-08-07 16:28:19 · 341 阅读 · 0 评论 -
poj3264 RMQ+ST裸题
区间查询最大值最小值,ST算法:O(nlogn)初始化+O(1)查询#include<iostream>using namespace std;#include<algorithm>#include<math.h>int N,Q;int height[50005];int dpmax[50005][20];//从第i个数起长度为2^j的区间内的...原创 2018-08-07 15:38:41 · 180 阅读 · 0 评论 -
hdu6231
#include&lt;iostream&gt;using namespace std;#include&lt;string.h&gt;int dp[2][1025];//当前操作后,dp[i][j]表示j状态下的点已经匹配 int b[15];int cnt[1025];const int mod=1e9+7;int ans[10];void init_b(){ b...原创 2018-08-07 13:17:34 · 438 阅读 · 1 评论 -
hdu1087
#渣渣的自我救赎# 最大上升子序列和#include<iostream>using namespace std;#include<string.h>int num[1000010];int maxnum[1000010];int main(){ int n; while(scanf("%d",&n)!=EOF&&a...原创 2018-04-13 17:18:56 · 255 阅读 · 0 评论 -
hdu1003
#渣渣的自我救赎# 最大连续子序列和(dp经典问题最长上升子序列、最长公共子序列) 这个题目就是一串数字,找出最大连续子序列和。 dp的三个特性最优子结构性质、子问题重叠性质、无后效性 状态转移方程dp[i]=max(dp[i-1]+num[i],num[i])#include<iostream>using namespace std;int num[10...原创 2018-04-13 15:28:54 · 396 阅读 · 0 评论 -
hdu2571命运(dp)
题意:输入一张n*m的地图,地图上代表着一个数字,然后开始走,向下只能移动一步,向右可以走到这个列数是当前列数的倍数或者是走一步。 好吧,我还分不清这个跟dfs什么的…… 感觉这个题也不是很难的样子,脑子里就是一片浆糊。原创 2017-08-28 15:47:52 · 266 阅读 · 0 评论 -
hdu1506直方图中的最大长方形(dp)
http://acm.hdu.edu.cn/showproblem.php?pid=1506 这个题可以说是我很有思路了,敲得也很顺利,一把提交,结果就是WA,我…WA的代码如下#include<iostream>using namespace std;#include<algorithm>long long num[100005];struct DP{ long long ans;原创 2017-08-28 12:15:23 · 326 阅读 · 0 评论 -
hdu1003最长连续子序列和dp
我已经WA了七遍了…依旧没有找到问题!#include<iostream>using namespace std;#include<algorithm>#include<string.h>int main(){ int t; scanf("%d",&t); int c; for(c=1;c<=t;c++) { printf("Case原创 2017-08-27 21:40:39 · 329 阅读 · 0 评论 -
hdu1087最长递增子序列dp
这个就是最长上升子序列,需要把初始条件改一下就可以了。#include<iostream>using namespace std;#include<algorithm>int num[1005];int dp[1005];const int inf=9999999;int main(){ int n; while(scanf("%d",&n)&&n) {原创 2017-08-27 20:52:02 · 264 阅读 · 0 评论 -
dp小总结
颓了五天之后我终于开始工作了,还是决定先不要想那么多,迷茫都是因为能力不够! 今天终于看懂了最长公共子序列,还是自己把表完整地写一遍比较好理解,然后在杭电上随意地点开了一个recommend,就来到了这样一个题,看完最长递增子序列,我就看完了五类基本的dp问题——最大连续子序列之和,数塔问题,01背包,最长公共子序列,最长递增子序列。 呃,当然可能忘得也差不多了,但是还是决定总结一下。 前几篇原创 2017-08-27 17:58:37 · 247 阅读 · 0 评论 -
最长递增子序列dp
#include<iostream>using namespace std;#include<algorithm> #include<string.h>int num[1005];int dp[1005];int main(){ int n; while(scanf("%d",&n)!=EOF&&n) { int i; for(i=0原创 2017-08-27 20:05:43 · 244 阅读 · 0 评论 -
hdu1159最长公共子序列dp
dp就是先把大的问题划分成小问题,然后分别解决,不管有用没用,先引入一个数组,把算过的东西保存起来,有的时候从后往前,有的时候从前往后调用数组里的东西,大概就是这样! 最长公共子序列需要一个二维的表,dp[i][j],存的是A[i]和B[j]的最长公共子序列,扫描两个序列中同一位置的两个字符,如果一样,就是长度为i,j的公共子串+1,如果不一样,则需要比较,看看是“舍弃”哪一个字符比较合适,然后把原创 2017-08-23 17:44:55 · 375 阅读 · 0 评论 -
hdu1231最大连续子序列dp
http://acm.hdu.edu.cn/showproblem.php?pid=1231WA的代码,我还不知道WA在哪里。#include<iostream>using namespace std;#include<string.h>long long num[10005];struct Node{ int start,end; long long sum;}dp[10原创 2017-08-23 11:54:05 · 261 阅读 · 0 评论 -
CF374/C(动态规划)
题目看上去感觉像是dijstra,但是不是最短路,而是在实践允许的范围内选择最多的点去走完从1到n的路,这个想到的是动态规划,以边为核心,一条边一条边的扫过,如果这条边对应的起点和终点连接上之后,对于从1到终点来说是有利的就加上那种,我还不是很理解,只是把标程看懂自己敲了一遍而已。#include<iostream>using namespace std;#include<stack>cons原创 2017-08-05 10:08:46 · 367 阅读 · 0 评论 -
hdu2955抢银行01背包
http://acm.hdu.edu.cn/showproblem.php?pid=2955我感觉题目还挺难的。#include<iostream>using namespace std;#include<string.h>#include<algorithm> struct Bank{ int money; double pj;}bank[110];double dp[1原创 2017-08-23 10:24:48 · 584 阅读 · 0 评论 -
dp2之多重背包
沉浸在背包的世界里不能自拔… 多重背包在完全背包的基础上升级为每个种类的东西的数目是有限的http://acm.hdu.edu.cn/showproblem.php?pid=2191 ☝多重背包裸题AC代码#include<iostream>using namespace std;#include<string.h>#include<algorithm>int main(){ i原创 2017-08-15 09:53:15 · 341 阅读 · 0 评论 -
dp之01背包(从二维到一维)+完全背包
☝这是最原始的01背包问题http://101.200.220.237/problem/153/下面写一下我的想法。巨巨是这样说的: 能用动规解决的问题的特点 1) 问题具有最优子结构性质。如果问题的最优解所包含的子问题的解也是最优的,我们就称该问题具有最优子结构性质。 2)无后效性。当前的若干个状态值一旦确定,则此后过程的演变就只和这若干个状态的值有关,和之前是采取哪种手段或经过哪条路径演变原创 2017-08-14 17:04:13 · 1026 阅读 · 0 评论 -
ACM-ICPC 2018 南京赛区网络预赛-E题(状压dp)
#include<iostream>using namespace std;#include<algorithm>#include<string.h>int n;int a[25];int b[25];int limit[25];int yilai[25];int bin[25];long long dp[2000005];int tot...原创 2018-09-02 13:33:55 · 369 阅读 · 0 评论