HDU - 5961 <-题目链接
思路:
思路1:随机化
这题不能随机答案并输出,20组数据几率还是太小了点。
我们想,它是个完全图,又是单向的,数据生成应该也不太好构造,2000*2000呢,所以我们想是不是可以随机化水一水。
srand(time(NULL));
每次随机三个数,然后我们检验这三个数的连通性。这个随机不一定是对的,因为最终图里可能只有一个小区域不符合连通性,所以我们多随机几次,我取的是400W次,交了两次过了。赛后100W交了3次过了。
check部分:
bool check(int x,int y,int z)
{
if(mapp[x][y] && mapp[y][z] && !mapp[x][z]) {return false;}
if(mapp[z][y] && mapp[y][x] && !mapp[z][x]) {return false;}
if(mapp[x][z] && mapp[z][y] && !mapp[x][y]) {return false;}
if(mapp[y][z] && mapp[z][x] && !mapp[y][x]) {return false;}
if(mapp[y][x] && mapp[x][z] && !mapp[y][z]) {return false;}
if(m