zoukankan      html  css  js  c++  java
  • AtCoder Grand Contest 014 B

    B - Unplanned Queries


    Time limit : 2sec / Memory limit : 256MB

    Score : 500 points

    Problem Statement

    Takahashi is not good at problems about trees in programming contests, and Aoki is helping him practice.

    First, Takahashi created a tree with N vertices numbered 1 through N, and wrote 0 at each edge.

    Then, Aoki gave him M queries. The i-th of them is as follows:

    • Increment the number written at each edge along the path connecting vertices ai and bi, by one.

    After Takahashi executed all of the queries, he told Aoki that, for every edge, the written number became an even number. However, Aoki forgot to confirm that the graph Takahashi created was actually a tree, and it is possible that Takahashi made a mistake in creating a tree or executing queries.

    Determine whether there exists a tree that has the property mentioned by Takahashi.

    Constraints

    • 2≤N≤105
    • 1≤M≤105
    • 1≤ai,biN
    • aibi

    Input

    Input is given from Standard Input in the following format:

    N M
    a1 b1
    :
    aM bM
    

    Output

    Print YES if there exists a tree that has the property mentioned by Takahashi; print NO otherwise.


    Sample Input 1

    Copy
    4 4
    1 2
    2 4
    1 3
    3 4
    

    Sample Output 1

    Copy
    YES
    

    For example, Takahashi's graph has the property mentioned by him if it has the following edges: 1−21−3 and 1−4. In this case, the number written at every edge will become 2.


    Sample Input 2

    Copy
    5 5
    1 2
    3 5
    5 1
    3 4
    2 3
    

    Sample Output 2

    Copy
    NO

    如果成立那么树的叶子节点的的度必定为偶数,那么删掉所有叶子节点和连接叶子节点的边,又是一个树,同理可得到树的所有节点的必定被提到偶数次
    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<string>
    #include<algorithm>
    #include<iostream>
    #include<queue>
    #include<map>
    #include<cmath>
    #include<set>
    #include<stack>
    #define ll long long
    #define pb push_back
    #define max(x,y) ((x)>(y)?(x):(y))
    #define min(x,y) ((x)>(y)?(y):(x))
    #define cls(name,x) memset(name,x,sizeof(name))
    using namespace std;
    const int inf=1e9+10;
    const ll llinf=1e16+10;
    const int maxn=1e5+10;
    const int maxm=1e2+10;
    const int mod=1e9+7;
    int n,m;
    int c[maxn];
    int main()
    {
        //freopen("in.txt","r",stdin);
        while(~scanf("%d %d",&n,&m))
        {
            for(int i=1;i<=m;i++)
            {
                int a,b;
                scanf("%d %d",&a,&b);
                c[a]++;
                c[b]++;
            }
            int flag=1;
            for(int i=1;i<=n;i++)
            {
                if(c[i]%2==1)
                    flag=0;
            }
            if(flag) printf("YES
    ");
            else printf("NO
    ");
        }
        return 0;
    }


  • 相关阅读:
    【插件】博客园markdown编辑器自定义代码黑色背景高亮显示
    【MatrixSynapseChat】安装教程(一)基于centOS7.* 安装Synapse
    【Python3】python安装 matrix-synapse[all] 报错’Error: pg_config executable not found‘
    【python3】在CentOS7上升级SQLite,并让Python3使用新版SQLite
    【linux】CentOS7 升级sqlite3
    【Python3】Centos7 安装Python3.7
    面试官:兄弟,说说Java的static关键字吧
    六一儿童节,程序员写给女儿的一封信
    被缠上了,小王问我怎么在 Spring Boot 中使用 JDBC 连接 MySQL
    女生适合学编程吗?
  • 原文地址:https://www.cnblogs.com/mgz-/p/7136084.html
Copyright © 2011-2022 走看看