不知道为什么wa了

P2731 [USACO3.3] 骑马修栅栏 Riding the Fences

flypig114 @ 2024-08-08 14:28:49

#include<iostream>
#include<cstdio>
using namespace std;
int A[501][501];
int n;
int B[501];
void dfs(int i){
    printf("%d\n",i);
    for(int j=1;j<=500;j++){
        if(A[i][j]>=1){
            A[i][j]--;
            A[j][i]--;
            dfs(j);
        }
    }
}

int main(){
    int a,b,start=1;
    cin>>n;
    for(int i=1;i<=n;i++){
        scanf("%d%d",&a,&b);
        A[a][b]+=1;
        A[b][a]+=1;
        B[a]++;
        B[b]++;
    }
    for(int i=1;i<=500;i++){
        if(B[i]%2==1) {
            start=i;
            break;
        }
    }
    dfs(start);
}

QWQ


by wangzilan52 @ 2024-08-09 08:52:35

第1个点的出度可能为0,所以start要取输入的顶点的最小值(如果你WA#1


by boy♂Next♂dooor @ 2024-08-27 16:32:11

@wangzilan52 "一个顶点上至少连接 1 个栅栏" 怎么会出度为0呢?


by follow_mashiro @ 2024-09-02 14:13:21

有可能压根没有1号节点

1号数据: 3

2 3

3 4

4 2


|