问一个nt问题但是我不明白
  • 板块学术版
  • 楼主Kniqht
  • 当前回复10
  • 已保存回复10
  • 发布时间2023/9/1 22:10
  • 上次更新2023/11/3 00:00:17
查看原帖
问一个nt问题但是我不明白
315205
Kniqht楼主2023/9/1 22:10

欧拉回路算法中,判是否有欧拉回路的时候(分有向和无向图)

for(int i=1;i<=n;i++){
            if(type==1)
            	if(din[i] + dout[i] & 1){
                	printf("NO\n");
                	return 0;
            	}
            else
            	if(din[i]!=dout[i]){
                	printf("NO\n");
                	return 0;
            	}
    		
}

上面是错的

if (T == 1) {//无向图需保证每个点的度为偶数
        for (int i = 1; i <= n; i++) {
            if ((din[i] + dout[i]) % 2) {
                printf("NO\n"); return 0;
            }
        }
    }
    else {//有向图需保证每个点的出度与入度相等
        for (int i = 1; i <= n; i++) {
            if (din[i] != dout[i]) {
                printf("NO\n"); return 0;
            }
        }
    }
    
    

这样就对了

我:???(这俩的区别就是先if再循环还是先循环再if

求大佬赐教

2023/9/1 22:10
加载中...