比赛 20101110 评测结果 AAAAAAAAAA
题目名称 奶牛派对 最终得分 100
用户昵称 郭乾乐 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2010-11-10 19:48:10
显示代码纯文本
  1. #include<iostream>
  2. #include<fstream>
  3. using namespace std;
  4.  
  5. int a[1001][1001][2],n,m,e,maxn=99999999,b[1001][2];
  6. void djs(int sn,int x)
  7. {
  8. int i,j,wm,k,d[1001];
  9. bool t[1001];
  10. for(i=1;i<=n;i++)
  11. {
  12. d[i]=maxn;
  13. t[i]=true;
  14. }
  15. d[sn]=0;
  16. for(i=1;i<n;i++)
  17. {
  18. wm=maxn;
  19. for(j=1;j<=n;j++)
  20. if(t[j]&&d[j]<wm)
  21. {
  22. k=j;
  23. wm=d[j];
  24. }
  25. t[k]=false;
  26. for(j=1;j<=n;j++)
  27. if(t[j]&&(a[k][j][x]+d[k])<d[j])
  28. d[j]=a[k][j][x]+d[k];
  29. }
  30. for(i=1;i<=n;i++)
  31. b[i][x]=d[i];
  32. }
  33. int main()
  34. {
  35. ifstream fin("party.in");
  36. ofstream fout("party.out");
  37. int i,x,y,j,mm=0;
  38. fin>>n>>m>>e;
  39. for(i=1;i<=n;i++)
  40. for(j=1;j<=n;j++)
  41. {
  42. a[i][j][0]=maxn;
  43. a[i][j][1]=maxn;
  44. }
  45. for(i=1;i<=m;i++)
  46. {
  47. fin>>x>>y;
  48. fin>>a[x][y][0];
  49. a[y][x][1]=a[x][y][0];
  50. }
  51. djs(e,0);
  52. djs(e,1);
  53. for(i=1;i<=n;i++)
  54. if((b[i][0]+b[i][1])>mm)
  55. mm=b[i][0]+b[i][1];
  56. fout<<mm<<endl;
  57. return 0;
  58. }