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 |
Re:为什么总是WA呀? 都是按照解题报告上的方法来的,大侠帮忙看下错哪了,谢谢!!!In Reply To:为什么总是WA呀? 都是按照解题报告上的方法来的,大侠帮忙看下错哪了,谢谢!!! Posted by:20050503 at 2007-06-07 10:39:11 > #include<iostream> > #include<vector> > using namespace std; > > #define max 10000000 > > int main() > { > int n;//the number of the villege > int m;//the number of the postoffice > while(cin>>n>>m) > { > if(m==n) > { > cout<<'0'<<endl; > continue; > } > int vpos[302]; > int i, j; > for(i=0; i<n; i++) > cin>>vpos[i+1]; > int dis[302][32]={0}; > int cost[302][32]={0}; > for(i=1; i<=n; i++)//the smallest distance between posi ans posj if there just one post office > for(j=1; j<=n; j++) > if(i>=j) > dis[i][j] =0; > else > dis[i][j] = dis[i][j-1]+vpos[j]-vpos[(i+j)/2]; > > for(i=1; i<=n; i++) > cost[i][1] = dis[1][i]; > for(i=2; i<=m; i++) > for(j=i+1; j<=n; j++) > { > int mid; > cost[j][i] = max; > for(int t=i-1; t<=j; t++) > { > mid = cost[t][i-1] + dis[t+1][j];//cost[n,m]=cost[r,m-1]+dis[r+1,n] > if(mid<cost[j][i]) > cost[j][i] = mid;//take the smallest distance > } > } > cout<<cost[n][m]<<endl; > } > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator