zoukankan      html  css  js  c++  java
  • #10108. 「一本通 3.7 练习 2」Ant Trip

     性质题:

    如果一个连通块可以构成欧拉回路或者路径,显然一笔画完事

    然后如果有多个奇数度的点,设奇数度的点为ans,显然我们会发现这个要画ans/2笔,(奇数度的点一定成对存在)

    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<queue>
    #include<stack>
    using namespace std;
    const int M=1e5+5;
    int fa[M],in[M],a[M],b[M];
    int get(int x){
        if(fa[x]==0) return x;
        return fa[x]=get(fa[x]);
    }
    int main(){
        int n,m;
        while(scanf("%d %d",&n,&m)!=EOF){
            memset(in,0,sizeof(in));
            memset(fa,0,sizeof(fa));
            memset(a,0,sizeof(a));
            memset(b,0,sizeof(b));
            int cnt=0;
            for(int i=1;i<=m;i++){
                int u,v;
                scanf("%d %d",&v,&u);
                in[v]++,in[u]++;
                u=get(u),v=get(v);
                if(u!=v) fa[v]=u;
            }
            for(int i=1;i<=n;i++){
                if(get(i)==i) cnt++;
            }
            for(int i=1;i<=n;i++){
                a[get(i)]++;
                if(in[i]%2==1) b[get(i)]++;
            }
            int ans=0;
            for(int i=1;i<=n;i++){
                if(a[i]<=1) continue;
                else if(b[i]==0) ans++;
                else if(b[i]>0) ans+=b[i]/2;
            }
            printf("%d
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    OS-lab4
    OS-lab3
    OS-lab2
    OS-lab1
    OO第四单元总结
    OO第三单元总结
    OO第二单元总结
    HTTP_POST
    实习日志1(2020.7.27-2020.9.31)
    Web app ------ 从Servlet读取Json数据并显示,生成历史数据曲线图
  • 原文地址:https://www.cnblogs.com/acmLLF/p/13714020.html
Copyright © 2011-2022 走看看