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 |
为什么我的第5个数据和第7个数据错了?对了下别人的数据,发现7组数据对了5组,其中两组错了。 分别是 0 5 10000 3 4 2 3000 3 2000 4 2000 5 9000 8000 2 3 3 5000 4 2000 5 7000 5000 4 0 2000 3 1 5 1900 50 2 0 ans:3950 而我的是4000 另外一组答案是105 而我的是104 我用的算法就是DFS,很简单的搜索啊,为什么会有两组数据是错的? 附上源代码: #include<fstream> using namespace std; int m,n,owner[101],t[101][50],v[101][50],ans=21400000; int abs(int a,int b) { if (a>b) return a-b; else return b-a; } int min(int a,int b) { if (a<b) return a; else return b; } int dfs(int num) { int i,temp=2140000; for (i=1;i<=t[num][0];i++) if (abs(owner[num],owner[t[num][i]])<=m) temp=min(temp,dfs(t[num][i])+v[num][i]); temp=min(temp,v[num][0]); return temp; } int main() { ifstream infile; ofstream outfile; infile.open("data.in",ios::in); outfile.open("data.out",ios::out); int p,l,x,i,j,temp; infile>>m>>n; for (i=1;i<=n;i++) { infile>>p>>l>>x; v[i][0]=p;owner[i]=l; t[i][0]=x; for (j=1;j<=x;j++) infile>>t[i][j]>>v[i][j]; } temp=dfs(1); ans=min(ans,temp); outfile<<ans; infile.close(); outfile.close(); return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator