zoukankan      html  css  js  c++  java
  • (欧拉图 并查集 图论) 2922. kotori和旅游

    【题目描述】

    kotori有一个目标,要旅游遍全日本。

    可惜日本太大了,她没有足够的经费。于是kotori计划游览n个地区。她从音乃木坂学院出发,希望把每条线路都走一遍,最后回到音乃木坂学院。

    她认为走同一条路是愚蠢的,因此在规划旅游线路的时候不能在同一条路上经历两次。

    n个地区之间共有m条线路。kotori想知道她是否能找到一个完美的规划方案?

    (注:两个地区之间不保证只有一条线路。一个地区可以被游览多次)

    【输入】

    第一行有两个整数n,m,代表地区数和线路数(1≤m,n≤100)。

    接下来的m行,每行有两个正整数a和b,表示a地区和b地区有一条线路连接。(1≤a,b≤n)

    音乃木坂学院记为1号地区。

    【输出】

    若最终能规划处线路,则输出"Yes"。否则输出"No"。

    【样例输入】

    3 4

    1 2

    3 1

    1 3

    1 2

    【样例输出】

    Yes

    【样例描述】

    可选用1→2→1→3→1这样的线路,依次使用第一条、第四条、第二条、第三条线路。

    PS:这个是需要校园网才能访问的。http://acm.bistu.edu.cn/acm/submit.jsp?problemID=2922&pageNo=1&pages=0  

    和我之前做的题几乎一样。https://www.cnblogs.com/Weixu-Liu/p/10890082.html (一笔画问题)

    不过,和这个一笔画问题不同的是,这个题是要回到出发点,emmm,要审题。所以,奇点的个数只能为0。

    C++代码:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    const int maxn = 110;
    int father[maxn];
    int node[maxn];
    int n,m;
    int Find(int x){
        while(x != father[x]){
            father[x] = father[father[x]];
            x = father[x];
        }
        return x;
    }
    void Union(int a,int b){
        int ax = Find(a);
        int bx = Find(b);
        if(ax != bx){
            father[ax] = bx;
        }
    }
    int main(){
        scanf("%d%d",&n,&m);
        for(int i = 1; i <= n; i++){
            father[i] = i;
        }
        int a,b;
        for(int i = 0; i < m;i++){
            scanf("%d%d",&a,&b);
            Union(a,b);
            node[a]++;
            node[b]++;
        }
        int cnt = 0,cnt1 = 0;
        bool flag1 = true,flag2 = true;
        for(int i = 1; i <= n; i++){
            if(father[i] == i){
                cnt++;
                if(cnt == 2)
                    flag1 = false;
            }
            if(node[i] & 1) cnt1++;
        }
        if(cnt1 != 0) flag2 = false;
        if(flag1 && flag2) printf("Yes
    ");
        else printf("No
    ");
        return 0;
    }
  • 相关阅读:
    PHP异常与错误处理机制
    工作中图片上传遇到的一个问题
    PHP遍历目录四种方法
    ssh框架中.xml文件小技巧分离xml
    读取XML文件内容
    spring_AOP
    spring_AOP_XML
    spring_AOP_annotation
    js异步刷新局部页面
    HQL count(*)
  • 原文地址:https://www.cnblogs.com/Weixu-Liu/p/10890141.html
Copyright © 2011-2022 走看看