zoukankan      html  css  js  c++  java
  • AT2673 Tree and Hamilton Pat

    https://www.luogu.org/problemnew/show/AT2673

    题意:

    思路:与CF468D TREE类似

    代码:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #define ma(a,b) (a<b?b:a)
    #define mi(a,b) (a<b?a:b)
    using namespace std;
    inline int read(){
        int x=0;
        char ch=getchar();
        while(ch<'0'||ch>'9') ch=getchar();
        while(ch>='0'&&ch<='9'){
            x=(x<<3)+(x<<1)+ch-48;
            ch=getchar();
        }
        return x;
    }
    const int maxn=1e5+4;
    int head[maxn],siz[maxn],num[maxn];
    long long dep[maxn],ans1=0;
    int n,m,cnt=0,rt=0,sum=0x3f3f3f3f,minn=0x3f3f3f3f;
    struct node{
        int to,next;
        long long w;
    }e[maxn<<1];
    inline void add(int u,int v,int w){
        e[cnt].to=v;e[cnt].next=head[u];e[cnt].w=w;head[u]=cnt++;
    }
    inline void findrt(int u,int fa){
        siz[u]=1;
        for(int i=head[u];i!=-1;i=e[i].next){
            int v=e[i].to;
            if(v==fa) continue;
            findrt(v,u);
            siz[u]+=siz[v];
            num[u]=ma(num[u],siz[v]);
        }
        num[u]=ma(num[u],n-siz[u]);
        if(num[u]<sum){sum=num[u];rt=u;}
    }
    inline void dfs(int u,int fa){
        ans1+=dep[u];
        for(int i=head[u];i!=-1;i=e[i].next){
            int v=e[i].to;
            if(v==fa) continue;
            dep[v]=(long long)e[i].w+dep[u];
            dfs(v,u);
        }
    }
    int main(){
        n=read();
        memset(head,-1,sizeof(head));
        for(int i=1;i<=n-1;i++){
            int u=read(),v=read(),w=read();
            add(u,v,w);add(v,u,w);
        }
        findrt(1,0);
        dfs(rt,0);
        ans1<<=1;
        for(int i=head[rt];i!=-1;i=e[i].next){
            int v=e[i].to;
            minn=mi(minn,e[i].w);
            if(num[v]==num[rt]){ans1=(long long)ans1-e[i].w;cout<<ans1;return 0;}
        }
        cout<<(long long)ans1-minn;
    }
  • 相关阅读:
    找回感觉的练习
    第四次博客作业-结对项目
    zookeeper启动脚本
    docker自己制作centos7-jdk1.8-tomcat8
    Docker运行springboot的项目
    从list中模糊查询字符串
    Java实现文件下载
    hadoop的HA集群搭建
    oauth2 feign 报401的错误
    SpringBoot mybatis 自定义分页插件 注解版
  • 原文地址:https://www.cnblogs.com/wifimonster/p/10227595.html
Copyright © 2011-2022 走看看