UOJ 109 [APIO2013]TASKSAUTHOR

提交答案題

感覺這道提答是我見過的最善良的提答了……


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

一個完全圖即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章