2011年4月30日

poj 3018

摘要: dp升序代码:#include<iostream>#include<fstream>using namespace std;int n,m;struct e{ int a[1001];};e map[501];int gif[1001];int cmp(const void *a,const void *b){ return *(int*)a-*(int*)b;}int cmp1(const void *a,const void *b){ e *s=(e*)a; e *t=(e*)b; int i=0; while(i<m) { if(s->a[i]!=t- 阅读全文

posted @ 2011-04-30 18:48 宇宙吾心 阅读(231) 评论(0) 推荐(0)

poj 3036

摘要: 题意:黄蜂有多少种走法。它在六边形格子中走 n 步并且回到初始位置一共有多少种走法。代码:#include<iostream>#include<fstream>using namespace std;int res[15][30][30];void read(){// ifstream cin("in.txt"); int i,j,k; res[0][15][15]=1; for(k=0;k<14;k++) for(i=1;i<=29;i++) for(j=1;j<=29;j++) { if(j>2) res[k+1][i][ 阅读全文

posted @ 2011-04-30 16:43 宇宙吾心 阅读(449) 评论(0) 推荐(0)

poj 3176

摘要: 简单dp代码:#include<iostream>#include<fstream>using namespace std;int dp[351][351];int n;int a[351][351];void read(){// ifstream cin("in.txt"); int i,j,k; cin>>n; for(i=1;i<=n;i++) for(j=1;j<=i;j++) cin>>a[i][j]; dp[1][1]=a[1][1]; for(i=1;i<n;i++) for(j=1;j< 阅读全文

posted @ 2011-04-30 12:48 宇宙吾心 阅读(281) 评论(0) 推荐(0)

poj 3186

摘要: 简单dp代码:#include<iostream>#include<fstream>using namespace std;int a[2001];int dp[2001][2001];int n;void read(){// ifstream cin("in.txt"); int i,j,k; cin>>n; for(i=1;i<=n;i++) { cin>>j; a[i]=a[i-1]+j; } for(i=1;i<=n;i++) dp[i][i]=a[i]-a[i-1]; for(k=1;k<=n-1; 阅读全文

posted @ 2011-04-30 12:38 宇宙吾心 阅读(305) 评论(0) 推荐(0)

poj 3616

摘要: 简单dp。代码:#include<iostream>#include<fstream>using namespace std;int n,m,r;struct e{ int s,t,f;};e a[1001];int cmp(const void *a,const void *b){ return (*(e *)a).s-(*(e *)b).s;}int dp[1001];void read(){// ifstream cin("in.txt"); int i,j,k; cin>>n>>m>>r; n=m; for 阅读全文

posted @ 2011-04-30 12:15 宇宙吾心 阅读(386) 评论(0) 推荐(0)

poj 3628

摘要: 01背包的变形。代码:#include<iostream>#include<fstream>using namespace std;int dp[20000001];int n,h;int a[21];void read(){// ifstream cin("in.txt"); int i,j,k=0; cin>>n>>h; for(i=1;i<=n;i++) { cin>>a[i]; k+=a[i]; } for(j=1;j<=a[1];j++) dp[j]=a[1]; for(j=a[1]+1;j& 阅读全文

posted @ 2011-04-30 11:36 宇宙吾心 阅读(310) 评论(0) 推荐(0)

poj 3671

摘要: 不降子序列。代码:#include<iostream>#include<fstream>using namespace std;int a[30001];int n;int b[30001];int find(int s,int value){ int i=0,k; while(i<=s) { k=(i+s)>>1; if(b[k]>value) s=k-1; else i=k+1; } return s;}void read(){// ifstream cin("in.txt"); int i,j,k,m,m1; cin&g 阅读全文

posted @ 2011-04-30 11:03 宇宙吾心 阅读(220) 评论(0) 推荐(0)

导航