提交答案題
感覺這道提答是我見過的最善良的提答了……
tasksauthor 1
卡floyd,上一個101個點的無邊圖就行了。
tasksauthor 2
注意到代碼裏是隻要能鬆弛就把邊集for一遍,那就用一條鏈把鬆弛卡到V-1次,再把邊加到滿即可。
tasksauthor 3
同1
tasksauthor 4
dijkstra是一個看起來沒有什麼問題的算法,然而有一個致命弱點在於負權。建出一系列負權邊讓它的鬆弛次數倍增起來即可。具體的,大概是這麼操作的:
n = 16; int v = 999999;
for(int i = 0; i < n; i++)
{
d[i][i+1] = -2;
d[i][i+n+1] = -1;
d[i+n+1][i+1] = -v;
v /= 2;
}
n = n<<1|1; // n是點數,n=33
tasksauthor 5
同2
tasksauthor 6
同4
tasksauthor 7
一個二分圖即可,這樣2就直接搜出來。
tasksauthor 8
一個完全圖即可。