首页 > Windows开发 > 详细

AcWing 1124. 骑马修栅栏

时间:2021-07-16 00:12:04      阅读:25      评论:0      收藏:0      [点我收藏+]

原题链接
考察:欧拉路径
思路:
??根本不难,注意\(ans\)数组不要开小了.....

Code

#include <iostream>
#include <cstring>
using namespace std;
const int N = 510;
int m,g[N][N],d[N],maxn,ans[N<<2],cnt,minv = N;
void dfs(int u)
{
    for(int i=minv;i<=maxn;i++)
    {
        if(g[u][i])
        {
            g[u][i]--,g[i][u]--;
            dfs(i);
        }
    }
    ans[++cnt] = u;
}
int main()
{
    scanf("%d",&m);
    for(int i=1;i<=m;i++)
    {
        int a,b; scanf("%d%d",&a,&b);
        g[a][b]++,g[b][a]++;
        d[a]++,d[b]++;
        maxn = max(a,maxn),minv = min(a,minv);
        maxn = max(b,maxn),minv = min(b,minv);
    }
    int sta = minv;
    for(int i=minv;i<=maxn;i++)
      if(d[i]&1)
      {
          sta = i;
          break;
      }
    dfs(sta);
    for(int i=cnt;i>=1;i--) printf("%d\n",ans[i]);
    return 0;
}

AcWing 1124. 骑马修栅栏

原文:https://www.cnblogs.com/newblg/p/15017917.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!