Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
cal()里有个地方==-1写成=-1了...In Reply To:用DP做了,可是TLE? 本人DP写的不怎么好,请望指教。 Posted by:FOR_RITZ at 2006-12-09 00:08:30 > //1163 an easy dp problem > #include <stdio.h> > struct num > { > int val; > int sum; > }org[100][100]; > void input(int t) > { > int tp1;int tp2; > for(tp1=1;tp1<=t;tp1++) > { > for(tp2=0;tp2<tp1;tp2++) > { > scanf("%d",&org[tp1-1][tp2].val); > } > } > } > > void clr() > { > int a; > for(a=0;a<10000;a++) > { > org[a/100][a%100].val =-1; > org[a/100][a%100].sum =-1; > } > } > > int max(int a,int b) > { > if(a>b) > return a; > else > return b; > } > > int cal(int c,int d,int t) > { > if(org[c][d].sum =-1) > { > if(c<t-1) > org[c][d].sum =max(cal(c+1,d,t),cal(c+1,d+1,t))+org[c][d].val; > if(c==t-1) > org[c][d].sum =org[c][d].val; > } > return org[c][d].sum; > } > > void output(int ans) > { > printf("%d\n",ans); > } > > void work(int t) > { > int ans; > input(t); > ans=cal(0,0,t); > output(ans); > } > > int main() > { > int t; > while(scanf("%d",&t)!=EOF) > { > clr(); > work(t); > } > return 0; > } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator