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呀? 都是按照解题报告上的方法来的,大侠帮忙看下错哪了,谢谢!!!#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