2011年5月1日

poj 2181

摘要: 题意:最大子序列,奇数项加,偶数项减。dp解代码:#include<iostream>#include<fstream>using namespace std;int dp[150001][2][2];int n;int a[150001];void read(){// ifstream cin("in.txt"); int i,j,k; cin>>n; for(i=1;i<=n;i++) cin>>a[i]; dp[1][0][0]=0; dp[1][0][1]=-9999999; dp[1][1][1]=a[1]; 阅读全文

posted @ 2011-05-01 16:52 宇宙吾心 阅读(393) 评论(0) 推荐(0)

poj 2353

摘要: 题目的大意就是给了M*N的矩阵,求一条从第一行到最后一行的路径(只能从上往下走),使得路径上的数字总和最小,输出该路径,如有多条,则任意输出一条。路径的表达方式可参考样例。f[i][j]=Min{f[i][j],f[i][j+1]+a[i][j],f[i][j-1]+a[i][j]}这个初看不是很好写,f[i][j]与f[i][j+1]和f[i][j-1]都有关,其实只要循环两次,即第一次从左到右,每次f[i][j]只与f[i][j-1]比较,第二次从右到左,每次f[i][j]只与f[i][j+1]比较,就可以了。代码:#include<iostream>#include<f 阅读全文

posted @ 2011-05-01 15:33 宇宙吾心 阅读(513) 评论(0) 推荐(0)

poj 2392

摘要: 题意:有一群牛要上太空,他们计划建一个太空梯(用一些石头垒),他们有k种不同类型的石头,每一种石头的高度为h,数量为c,由于会受到太空辐射,每一种石头不能超过这种石头的最大建造高度a,求解利用这些石头所能修建的太空梯的最高的高度.多重背包dp染色法。代码:#include<iostream>#include<fstream>using namespace std;struct e{ int h,a,c;};e map[401];int dp[40001];int c[40001];int cmp(const void *a,const void *b){ e *s=(e 阅读全文

posted @ 2011-05-01 14:23 宇宙吾心 阅读(617) 评论(0) 推荐(1)

导航