DP
phoenix13suns
这个作者很懒,什么都没留下…
展开
-
1087 最大上升子序列
#include #define N 1001int main (){ int n,i,a[N],b[N],j,max,temp; while(scanf("%d",&n),n) { for (i=0;i max=b[0]=a[0]; for (i=1;i { b[i]=a[i]; for (j=i-1;j>=0;j--) {原创 2010-09-29 22:37:00 · 220 阅读 · 0 评论 -
POJ 1088 DP+深搜 滑雪
<br />#include <stdio.h> #define N 102 #define INF 0x7ffffff int map[N][N]; int dp[N][N]; int mo[4][2]={{-1,0},{0,1},{1,0},{0,-1}}; int n,m; int Max (int a,int b) { return a>b? a:b; } int dfs(int i,int j) { int k,in,jn,flag=0; for (k=0;k<4原创 2010-12-07 12:51:00 · 381 阅读 · 0 评论 -
1003 最大连续子串和
#include int main (){ int n,i,j,m,*p,a,b,max,s,l; scanf("%d",&m); for (l=0;l { if(l) putchar('/n'); scanf("%d",&n); p=new int [n]; max=-0x80000000; for (i=0;i { scanf("%d",p+i); i原创 2010-11-06 20:51:00 · 496 阅读 · 0 评论 -
2602 0-1背包
<br />#include <stdio.h> #include <string.h> #define N 1001 int max(int a,int b) { return a>b? a:b; } int main () { int T,f[N],i,j,n,v; int c[N];//重量 int w[N];//价值 scanf("%d",&T); while(T--) { scanf("%d%d",&n,&v); for (i=0;i<n;i原创 2010-11-07 15:33:00 · 225 阅读 · 0 评论 -
1114 完全背包
<br />#include <stdio.h> #define N 10010 #define MAX 0xfffffff int min (int a,int b) { return a>b? b:a; } int main () { int n,i,v,T,e,g,f[N]; int c,w;//重量 价值 scanf("%d",&T); while(T--) { scanf("%d%d",&e,&g); v=g-e; scanf("%d",&n原创 2010-11-07 17:27:00 · 240 阅读 · 0 评论 -
1171 多重背包
#include #define N 125005 int max(int a,int b) { return a>b? a:b; } int f[N]; int main () { int n,c[1001],m[1001],i,j,k,v,sum,t,t1; while(scanf("%d",&n),n>0) { sum=0; for (i=0;i原创 2010-11-07 21:16:00 · 214 阅读 · 0 评论 -
1025 最大递增子序列+二分 nlogn
#include #define N 500001 int a[N],b[N]; int main () { //freopen("1025.txt","r",stdin); int i,n,x,y,c=1,len,low,high,mid; while(scanf("%d",&n)!=EOF) { for (i=0;i>1; if (b[mid]len-1) len++; }原创 2011-01-08 21:09:00 · 337 阅读 · 0 评论