Kulesh

flyod warshall

Dec 24th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. #include<iostream>
  2. #include<algorithm>
  3. #include<vector>
  4.  
  5. using namespace std;
  6.  
  7. #define NULL 0L
  8.  
  9. vector<int> E[9];
  10. //bool visited[9];
  11. //int dist[9];
  12. int weight[9][9];
  13. //int parent[9];
  14. int w[9][9][9];
  15.  
  16. void fwsp(){
  17. for(int i = 0; i < 9; i++){
  18. for(int j = 0; j < 9; j++){
  19. w[i][j][0] = 200;
  20. }
  21. }
  22. for(int j = 0; j < 9; j++){
  23. for(int k = 0; k < E[j].size(); k++){
  24. w[j][E[j][k]][0] = weight[j][E[j][k]];
  25. }
  26. }
  27. for(int k = 1; k < 9; k++){
  28. for(int i = 0; i < 9; i++){
  29. for(int j = 0; j < 9; j++){
  30. if(w[i][j][k-1] > (w[i][k][k-1] + w[k][j][k-1])){
  31. w[i][j][k] = w[i][k][k-1] + w[k][j][k-1];
  32. } else {
  33. w[i][j][k] = w[i][j][k-1];
  34. }
  35. }
  36. }
  37. }
  38. }
  39.  
  40. int main(){
  41.  
  42. E[0].push_back(1);
  43. E[0].push_back(2);
  44. E[1].push_back(0);
  45. E[1].push_back(3);
  46. E[2].push_back(0);
  47. E[3].push_back(1);
  48. E[3].push_back(5);
  49. E[3].push_back(4);
  50. E[3].push_back(7);
  51. E[4].push_back(3);
  52. E[5].push_back(3);
  53. E[5].push_back(6);
  54. E[6].push_back(5);
  55. E[7].push_back(3);
  56. E[7].push_back(8);
  57. E[8].push_back(7);
  58. E[7].push_back(6);
  59. E[6].push_back(7);
  60.  
  61. weight[0][2] = 10;
  62. weight[2][0] = 10;
  63. weight[0][1] = 5;
  64. weight[1][0] = 5;
  65. weight[1][3] = 6;
  66. weight[3][1] = 6;
  67. weight[3][4] = 12;
  68. weight[4][3] = 12;
  69. weight[3][5] = 50;
  70. weight[5][3] = 50;
  71. weight[5][6] = 5;
  72. weight[6][5] = 5;
  73. weight[3][7] = -10;
  74. weight[7][3] = -10;
  75. weight[7][8] = 20;
  76. weight[8][7] = 20;
  77. weight[7][6] = 10;
  78. weight[6][7] = 10;
  79. fwsp();
  80. cout << w[0][8][8] << endl;
  81. return 0;
  82. }
Add Comment
Please, Sign In to add comment