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<math.h> using namespace std; class Node { public: long int value,grade,indegree; long int preNode[100][2]; }; long int result(long int G[101][101],int n) { int i,j; long int min,D[101]; for(j=1;j<=n;j++) D[j]=G[0][j]; for(j=1;j<=n;j++) { min=D[j]; for(i=1;i<j;i++) { if(G[i][j]<=min) {if(G[i][j]!=-1) min=G[i][j];} else continue; } for(i=0;i<=n;i++) if(G[j][i]!=-1) G[j][i]+=min; } min=G[0][n]; for(i=0;i<n;i++) {if(G[i][n]!=-1&&G[i][n]<min) min=G[i][n];} return min; } int main() { int m,n; int i,j,k; cin>>m>>n; if(n==0) printf("%d\n",0); else{ Node node[101]; for(i=1;i<=n;i++) { cin>>node[i].value>>node[i].grade>>node[i].indegree; for(j=0;j<node[i].indegree;j++) cin>>node[i].preNode[j][0]>>node[i].preNode[j][1]; } long int array[101][101]; for(i=0;i<=n;i++) for(j=0;j<=n;j++) array[i][j]=-1; for(i=1;i<=n;i++) array[0][i]=node[i].value; for(i=1;i<n;i++) for(j=i+1;j<=n;j++) { for(k=0;k<node[i].indegree;k++) if(node[i].preNode[k][0]==j&&node[i].grade-node[j].grade<=m) array[i][j]=node[i].preNode[k][1]; } long int temp; for(j=1,k=n;j<k;j++,k--) {temp=array[0][j];array[0][j]=array[0][k];array[0][k]=temp;} for(i=1;i<=n;i++) for(j=1;j<=n-i+1;j++) {temp=array[i][j];array[i][j]=array[n+1-j][n+1-i];array[n+1-j][n+1-i]=temp;} long int res; res=result(array,n); printf("%ld\n",res); return 0; } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator