比赛 20150714B 评测结果 AATTT
题目名称 最难的任务 最终得分 40
用户昵称 Saionji 运行时间 0.301 s
代码语言 C++ 内存使用 0.66 MiB
提交时间 2015-07-14 10:22:59
显示代码纯文本
  1. #include <fstream>
  2. #include <cstring>
  3. #include <algorithm>
  4.  
  5. using namespace std;
  6.  
  7. #define Maxn 300
  8.  
  9. ifstream fin("hardest.in");
  10. ofstream fout("hardest.out");
  11.  
  12. int n, m, i, j, k;
  13. int a, b, c;
  14. int map[Maxn][Maxn];
  15.  
  16. void search()
  17. {
  18. memset(map,-1,sizeof(map));
  19. fin>>n>>m;
  20. for(a=1;a<=m;a++)
  21. {
  22. fin>>i>>j>>k;
  23. if(map[i][j]==-1||map[i][j]>k)
  24. {
  25. map[i][j]=map[j][i]=k;
  26. }
  27. }
  28. for(c=1;c<=n;c++)
  29. {
  30. for(a=1;a<=n;a++)
  31. {
  32. for(b=1;b<=n;b++)
  33. {
  34. if(a!=b && a!=c &&b!=c)
  35. {
  36. if(map[a][c]!=-1 && map[c][b]!=-1)
  37. {
  38. if(map[a][b]==-1 || map[a][b]>map[a][c]+map[c][b])
  39. {
  40. map[a][b]=map[a][c]+map[c][b];
  41. }
  42. }
  43. }
  44. }
  45. }
  46. }
  47. if(n==1)
  48. {
  49. fout<<'0'<<endl;
  50. }
  51. else fout<<map[1][n]<<endl;
  52. }
  53. int main()
  54. {
  55. int t, temp;
  56. fin>>t;
  57. for(temp=1;temp<=t;temp++)
  58. {
  59. search();
  60. }
  61. fin.close();
  62. fout.close();
  63. return 0;
  64. }