Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<algorithm>
- #include<vector>
- using namespace std;
- #define NULL 0L
- vector<int> E[9];
- //bool visited[9];
- //int dist[9];
- int weight[9][9];
- //int parent[9];
- int w[9][9][9];
- void fwsp(){
- for(int i = 0; i < 9; i++){
- for(int j = 0; j < 9; j++){
- w[i][j][0] = 200;
- }
- }
- for(int j = 0; j < 9; j++){
- for(int k = 0; k < E[j].size(); k++){
- w[j][E[j][k]][0] = weight[j][E[j][k]];
- }
- }
- for(int k = 1; k < 9; k++){
- for(int i = 0; i < 9; i++){
- for(int j = 0; j < 9; j++){
- if(w[i][j][k-1] > (w[i][k][k-1] + w[k][j][k-1])){
- w[i][j][k] = w[i][k][k-1] + w[k][j][k-1];
- } else {
- w[i][j][k] = w[i][j][k-1];
- }
- }
- }
- }
- }
- int main(){
- E[0].push_back(1);
- E[0].push_back(2);
- E[1].push_back(0);
- E[1].push_back(3);
- E[2].push_back(0);
- E[3].push_back(1);
- E[3].push_back(5);
- E[3].push_back(4);
- E[3].push_back(7);
- E[4].push_back(3);
- E[5].push_back(3);
- E[5].push_back(6);
- E[6].push_back(5);
- E[7].push_back(3);
- E[7].push_back(8);
- E[8].push_back(7);
- E[7].push_back(6);
- E[6].push_back(7);
- weight[0][2] = 10;
- weight[2][0] = 10;
- weight[0][1] = 5;
- weight[1][0] = 5;
- weight[1][3] = 6;
- weight[3][1] = 6;
- weight[3][4] = 12;
- weight[4][3] = 12;
- weight[3][5] = 50;
- weight[5][3] = 50;
- weight[5][6] = 5;
- weight[6][5] = 5;
- weight[3][7] = -10;
- weight[7][3] = -10;
- weight[7][8] = 20;
- weight[8][7] = 20;
- weight[7][6] = 10;
- weight[6][7] = 10;
- fwsp();
- cout << w[0][8][8] << endl;
- return 0;
- }
Add Comment
Please, Sign In to add comment