啃食后人!!如果你用的vector存反图
  • 板块P1285 队员分组
  • 楼主z_yq
  • 当前回复1
  • 已保存回复1
  • 发布时间2025/1/17 14:41
  • 上次更新2025/1/17 17:00:43
查看原帖
啃食后人!!如果你用的vector存反图
669171
z_yq楼主2025/1/17 14:41

注意了,如果你的写法像

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;

有帮助到就@一下,肯定很多人错了!!!

2025/1/17 14:41
加载中...