poj 2570經典二進位制floyd

2021-06-08 10:13:53 字數 755 閱讀 6383

//  floyd  +  位運算

/* 題目大意:有若干家公司,他們分別在若干個城市的路由器間鋪設了自己的光纖,

現在問,如果要從路由器a到路由器b傳送資料,能否只使用一家公司的光纖而達到目的,

如能則分別輸出這些公司的代號。

思路:雖然不是最短路,卻可以用每對頂點的最短路徑 floyd-warshell 演算法來求解。

dist[i][j]代表 i 到 j 的一條可能包含前k個點中若干個頂點的所有路徑中最短的路徑。

而在本題中

graph[i][j]代表i 到 j 的包含前k個點中若干個頂點的所有路徑中的可行解的狀態(壓縮到整形里位表示)

計算方式為:

graph[i][j] = graph[i][j] | (graph[i][p] & graph[p][j])

最後也就根據要求查詢位狀態即可。

*/#include#includeusing namespace std;

const int maxn = 201;

int n;

int graph[maxn][maxn];

void init()

}void floyd()

}void output()

if (!any)printf("-");

putchar('\n');

}putchar('\n');

}int main()

return 0;

}

POJ2570 二進位制,位運算,Floyd

題意 給你乙個有向圖,兩點之間有多種連線方式,然後每次詢問都問你點a,b之間有哪些方式可以到達,每個小字母是乙個方式.思路 很巧妙的位運算和floyd應用,借助floyd的更新過程,去更新任意兩組邊組合起來的長邊,如 map i j 是由 map i k 和 map k j 接起來的,更新方式很容易...

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...

poj 2965二進位制

有乙個4 4的 符號矩陣,改變乙個元素的符號,所在行列都反轉最少次數,讓所有符號變成 號 並列印出符號位置 include include include include using namespace std int chess,step bool flag false int map 5 5 i...