too many or too few lines*3

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

鎏雨溪 @ 2017-11-25 22:50:53

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int m,u,v,num[520],g[520][520],ans[1300],len,maxi,mini;
void dfs(int i){
    for(int k=mini;k<=maxi;k++){
        if(g[k][i]){
            g[i][k]--;
            g[k][i]--;
            dfs(k);
        }
    }
    ans[++len]=i;
}
int main(){
    int i,j,start;
    scanf("%d",&m);
    while(m--){
        scanf("%d%d",&u,&v);
        g[u][v]=g[v][u]=1;
        ++num[u];++num[v];
        maxi=max(max(u,v),maxi);
        mini=min(min(u,v),mini);
    }
    start=1;
    for(i=mini;i<=maxi;i++){
        if(num[i]&1){
            start=i;
            break;
        }
    }
    dfs(start);
    for(i=len;i>=1;i--){
        printf("%d\n",ans[i]);
    }
    return 0;
}
求助大佬!!!

by 北海_Beihai @ 2018-02-24 14:10:47

有很多重边


by danefishhh @ 2018-07-24 17:06:17

楼上正解 g[u][v]与g[v][u]输入时候+=1而不是=1


by chlchl @ 2022-07-26 21:46:53

草,不看这个帖我是绝对不可能调出来的,阴间题……


|