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 |
喜欢动态规划的进来!!!程序哪里错了!!! #include<iostream> #include<algorithm> using namespace std; int f[32000],N,K; struct node { int L,P,S; }W[128]; int cmp(node a,node b) { return a.S<b.S; } inline int big(int a,int b) { return a>b?a:b; } void DP() { int i,j,t,s; sort(W,W+K,cmp); memset(f,0,sizeof(f)); int g,p; for(i=0;i<K;i++) { g=f[W[i].S]; p=W[i].P*W[i].L; int mm=f[W[i].S],id=0; t=W[i].S-1; for(j=W[i].S+W[i].L-1;j>=W[i].S;j--,t--) { if(t<0) { if(f[j]<W[i].P*j) { f[j]=W[i].P*j; } continue; } else { g=big(g-W[i].P,f[t]); } if(g+p>f[j]) { f[j]=g+p; if(f[j]>mm) { mm=f[j]; id=j; } } } s=W[i].S+W[i].L-1;; if(id==0) { continue; } for(j=s+1;j<=N;j++) { f[j]=f[s]; } } printf("%d\n",f[N]); } int main() { while(scanf("%d%d",&N,&K)!=EOF) { int i; for(i=0;i<K;i++) { scanf("%d%d%d",&W[i].L,&W[i].P,&W[i].S); } DP(); } return 1; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator