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 |
谢谢你,能讲讲我错在哪了么,始终想不通为什么WA,WA了20+次In Reply To:方程是对的,我用下面的代码AC了 Posted by:xfxyjwf at 2005-07-11 00:16:02 > //用~划出了增加的代码 > //#include <stdio.h> > #include<iostream> > //#include<fstream> > using namespace std; > int f[102][201],i,j,k,d,dis[102],sta[102],pri[102],n,inf = 1000000000,tmp; > > int main() > { > // freopen("in.txt","r",stdin); > // freopen("out2.txt","w",stdout); > // scanf("%d",&d); > // ifstream cin("in.txt"); > // ofstream cout("out2.txt"); > cin>>d; > n = 1; > while(cin>>sta[n]>>pri[n] && sta[n]<=d) > ~~~~~~~~~ > n++; > sta[n] = d; > sta[0] = 0; > for(i=1; i<=n; i++) > { > dis[i]=sta[i]-sta[i-1]; > if(dis[i]>200 || (i==1||i==n)&&dis[i]>100 || n==1 && dis[i]>0) > ~~~~~~~~~~~~~~~~~~~ > { > cout<<"Impossible"<<endl; > return 0; > } > for(j=0; j<=200; j++) > { > f[i][j] = inf; > } > } > f[1][100-sta[1]] = 0; > for(i=1; i<n; i++) > { > for(j=0; j<=200; j++) > { > if(f[i][j]!=inf) > { > for(k=0; k<=200-j; k++) > { > if(j+k>=dis[i+1] && f[i][j]+k*pri[i]<f[i+1][j+k-dis[i+1]]) > { > f[i+1][j+k-dis[i+1]] = f[i][j]+k*pri[i]; > } > } > } > } > } > cout<<f[n][100]<<endl; > // printf("%d\n",f[n][100]); > // cin.close(); > // cout.close(); > // fclose(stdin); > // fclose(stdout); > return 0; > } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator