动态规划
wyl_zheyang
这个作者很懒,什么都没留下…
展开
-
NYOJ 104 最大子矩阵
没啥好说的,,水题一个#include#include#includeusing namespace std;int main(){ int n,m; int map[305][305]; int icase; scanf("%d",&icase); while(icase--) { scanf("%原创 2013-07-20 16:50:41 · 552 阅读 · 0 评论 -
炮兵阵地
/* 炮兵阵地*//*这道题想了很长时间,终于AC了*/include #include #include using namespace std;int dp[109][100][100],state[190],map[109],num;void initdp(int n){ num = 0; for(int i=0;i<(1<<n);i++)原创 2014-09-03 20:38:46 · 491 阅读 · 0 评论 -
Hdu 4539 状态压缩
直接做掉的状态压缩dp,但是数组开小了,原创 2014-09-26 11:08:20 · 412 阅读 · 0 评论 -
hdu 4569 TSP
不得不说状态原创 2014-09-24 16:09:49 · 474 阅读 · 0 评论 -
HDU1565 状态压缩dp
/*****第一道状态压缩,感觉有点了解这个思维*****/#include#includeusing namespace std;const int len = 20;int state[ (1<<20) + 8];int dp[2][ (1<<20) + 8];int map[25][25];int num = 0;void init(){ for(int i=原创 2014-08-14 10:31:18 · 544 阅读 · 0 评论 -
poj 1837
/*dp首先看到这道题的时候,不是很理解,想了很久写一下自己的想法,给你 m 个 砝码, n 位置个位置 在这些位置上放砝码,如果天平平衡了,视为一种方式,问有多少方案思路:枚举所有的状态,dp[i][j] 表示第 i 个砝码,当平衡度为 j 的方案数,那么怎么推到状态转移方程呢?dp[i][j+x] += dp[i-1][j];这个是确定的,因为他是用前面那个状态推出来的,x 显原创 2014-03-27 20:22:11 · 437 阅读 · 0 评论 -
省赛组队赛 - G题 Art Union
简单的dp题,别的队伍都做出来了。。。在比赛最后几分钟的原创 2014-04-16 08:43:10 · 716 阅读 · 0 评论 -
poj 1159 LCS
#include #include #include #include using namespace std;char a[10008],b[10008];short int dp[5008][5006];int lcs(int n){ for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++){原创 2014-03-14 09:55:58 · 458 阅读 · 0 评论 -
poj 3267 简单dp
/*每天一个dp题,坚持下去你就是高手*//*首先这道题是采用逐个匹配*//*转移方程 dp[t-1] = min(dp[i-1]+t-i-x,dp[t-1]); dp[i] = min(dp[i-1]+1,dp[i]); */#include #include #include using namespace std;char str[10000],dir[1000][100原创 2014-03-13 09:41:49 · 471 阅读 · 0 评论 -
hdu 最大回文 Manacher算法
#include#include#include#includeusing namespace std;int p[400000]; char s[400000],a[400000];int main(){ int n,m; while(~scanf("%s",s)) { a[0] = '@' ;n = 1; int len原创 2014-02-19 21:41:20 · 483 阅读 · 0 评论 -
hdu 4512 最长公共上升子序列
首先,这道题要枚举1-n;以这个点为中心把源数据分成两部分,把后面的翻转过来,与前面的求最长公共子序列#include#include#include#includeusing namespace std;int data[1001],data1[1001],num[1001];int dp[1000];int LCS(int n,int m,int t){ for(i原创 2014-02-20 09:09:20 · 568 阅读 · 0 评论 -
hdu 4513 manacher 小变形
#include#includeusing namespace std;int p[200007],a[200007];int mana(int n) { int maxl = 0,minx = 0,id; for(int i=1;i<=n;i++) { if(maxl>i) p[i] = min(p[2*id-i],maxl-i)原创 2014-02-20 09:02:09 · 496 阅读 · 0 评论 -
Sicily OJ 2502
非常巧妙的一个动态规划q[i] 保存1~i个珍珠的个数,那么我们只需要枚举所有状态即可。。。。#include#includeusing namespace std;int q[10000],dp[10000],p[10000];int main(){ int n,m; while(cin>>n) { for(int i=1;i<=n;i++)原创 2014-02-24 19:28:55 · 724 阅读 · 0 评论 -
Hdu dp学习记录 二
经过几天的学习发现dp题自己已经有自己的思路,形成了一定得思维模式每天至少一个dp题坚持下去你就是高手HDU 2577思路:对于每个字符串考虑他的两种状态,递推过去,状态:dp[0][100000] 打开capslocks,dp[1][100000]表示关闭状态转移方程看代码#include#include#includeusing namespace std;in原创 2014-02-02 15:06:09 · 537 阅读 · 0 评论 -
HDU dp学习记录 一
Hdu 4502思路:Dp[i] 表示第i天能够达到的最大价值,按右区间排序。/* 每天至少一个dp题,坚持下去你就是高手*/ #include#include#include#includeusing namespace std;struct Node{ int l,r,w;}a[10009];int dp[10008];bool cmp(Node a,原创 2014-01-30 13:06:47 · 634 阅读 · 0 评论 -
括号配对 2
#include#include#include#include#define Nes 29999999using namespace std;int d[110][110];int main(){ int n,m; char s[105]; cin>>n; while(n--){ cin>>s+1;原创 2013-07-17 11:32:33 · 595 阅读 · 0 评论 -
codeforces 283C
给 n 中 钱币,以及每两种钱币的关系,表示,ai 的 个数 要大于 bi 组合成一个价值val,求方案数,好神奇的一个处理方式,不得不说又学到了#include#include#include#includeusing namespace std;const int mod = 1e9 + 7;const int M = 1e5 + 1;long long dp[M];int原创 2014-10-21 08:12:06 · 1060 阅读 · 0 评论