注意了,如果你的写法像
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
if(!(a[i][j] && a[j][i]) && (a[i][j] || a[j][i]))
e[i].push_back(j),e[j].push_back(i);
你就只能荣获31分,但是你能发现如果a[i][j]=a[j][i]=0那么你的程序就不会建这一条边,那么你就需要:
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
if(!(a[i][j] && a[j][i]))
e[i].push_back(j),e[j].push_back(i);
或者
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
if(!(a[i][j] && a[j][i]) && (a[i][j] || a[j][i]))
a[i][j]=a[j][i]=0;
有帮助到就@一下,肯定很多人错了!!!