misaka0111 @ 2017-09-23 18:43:36
这个点TLE有两个可能的原因。一个是不停的加重边,开个二维数组判重,没有加的时候再加。另一个是读入建图的时候,循环顺序一定要对,这个问题狠狠地坑了我QAQ。假如temp数组为停的车站,is数组为第j个车站有没有停,那么一定要这么写循环
for (int j = temp[1]; j < temp[s]; j++)
{
if (is[j])
continue;
for (int k = 1; k <= s; k++)
{
if (!G[j][temp[k]])
{
G[j][temp[k]] = 1;
add(j, temp[k]);
deg[temp[k]]++;
}
}
}
而不是
for (int j = 1; j <= s; j++)
{
for (int k = temp[1]; k < temp[s]; k++)
{
if (!is[k] && !G[k][temp[j]])
{
G[k][temp[j]] = 1;
add(k, temp[j]);
deg[temp[j]]++;
}
}
}
我调这个调了一下午QAQ
by maruize @ 2019-10-23 22:31:01
by maruize @ 2019-10-23 22:31:57
by Perfonster @ 2020-08-12 15:17:08
tql,解决了我的问题,谢谢!!!