• 1034 Head of a Gang (30分)


    这题看清楚题的话,题目说两个人关系的质量取决于两个人所有通话时间的总和。
    对于黑帮老大,就是和其他人关系质量最大的那个人。

    然后读懂题之后就可以把关系定义成边,人定义成点,关系质量就是边权。

    问题就转化成,求一个图上有几个连通块,每个连通块中,所具有边权最大的点是哪个。

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    const int MAXN=1e6+10;
    
    unordered_map<string,int> mp1;
    unordered_map<int,string> mp2;
    map<string,int> ans;
    long long weight[2010];
    int g[2010][2010],vis[2010],ID=0;
    
    int sum=0,cnt=0,head=-1,maxVal;
    
    void dfs(int rt) {
        if (weight[rt]>maxVal) {
            maxVal=weight[rt];
            head=rt;
        }
        vis[rt]=1;
        cnt++;
        for (int i=1;i<=ID;i++) {
            if (g[rt][i]) {
                sum+=g[rt][i];
                g[rt][i]=g[i][rt]=0;
                if (!vis[i]) dfs(i);
            }
        }
    }
    
    int main() {
    //     freopen("in.txt","r",stdin);
    
        int N,K;
        scanf("%d%d",&N,&K);
        for (int i=1;i<=N;i++) {
            char a[10],b[10];
            int t;
            scanf("%s%s%d",a,b,&t);
            if (mp1[a]==0) {
                mp1[a]=++ID;
                mp2[ID]=a;
            }
            if (mp1[b]==0) {
                mp1[b]=++ID;
                mp2[ID]=b;
            }
            int u=mp1[a],v=mp1[b];
            // printf("%d %d
    ",u,v);
            weight[u]+=t;
            weight[v]+=t;
            g[u][v]+=t;
            g[v][u]+=t;
        }
        for (int i=1;i<=ID;i++) {
            sum=0,cnt=0,head=0,maxVal=-1;
            if (!vis[i]) {
                dfs(i);
                if (cnt>2&&sum>K) {
                    ans[mp2[head]]=cnt;
                }
            }
            // printf("%d %d %d %d
    ",sum,cnt,head,maxVal);
        }
        printf("%d
    ",ans.size());
        for (auto it:ans) {
            cout<<it.first<<" "<<it.second<<endl;
        }
        return 0;
    }
    
  • 相关阅读:
    XML和JSON的区别
    浏览器渲染和服务器渲染区别
    存储过程
    对象关系映射(ORM)
    GitHub和SVN的区别
    WEB网站常见受攻击方式及解决办法
    同源与跨域
    java常用API之DateFormat
    java常用API之Date类
    面型对象之匿名对象
  • 原文地址:https://www.cnblogs.com/xyqxyq/p/13021823.html
Copyright © 2020-2023  润新知