提交答案题
感觉这道提答是我见过的最善良的提答了……
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
一个完全图即可。