• HDU6380 2018 “百度之星”程序设计大赛


    原题地址

    degree

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)
    Total Submission(s): 204    Accepted Submission(s): 119


    Problem Description
    度度熊最近似乎在研究图论。给定一个有 N 个点 (vertex) 以及 M 条边 (edge) 的无向简单图 (undirected simple graph),此图中保证没有任何圈 (cycle) 存在。

    现在你可以对此图依序进行以下的操作:

    1. 移除至多 K 条边。
    2. 在保持此图是没有圈的无向简单图的条件下,自由的添加边至此图中。

    请问最后此图中度数 (degree) 最大的点的度数可以多大呢?
     
    Input
    输入的第一行有一个正整数 T,代表接下来有几笔测试资料。

    对于每笔测试资料:
    第一行有三个整数 NMK
    接下来的 M 行每行有两个整数 a 及 b,代表点 a 及 b 之间有一条边。
    点的编号由 0 开始至 N1

    0KM2×105
    1N2×105
    0a,b<N
    * 给定的图保证是没有圈的简单图
    1T23
    * 至多 2 笔测试资料中的 N>1000
     
    Output
    对于每一笔测试资料,请依序各自在一行内输出一个整数,代表按照规定操作后可能出现的最大度数。
     
    Sample Input
    2 3 1 1 1 2 8 6 0 1 2 3 1 5 6 4 1 6 4 7 0
     
    Sample Output
    2 4
     
    Source
     
     
    没有圈的图就是一个树,这是多个树连接一起;所以度数最多是N-1;
    但是一开始有的点已经连接在一起如果两个都连起来的话那就会形成一个环;
    如果没有减去连线的机会的话那答案就是度最多的树的度加上其他树的数目减去1(自己)
    但是如果有减去的机会那就是 每减去一个线就可以多连一个点;
    如果减去的机会比需要减去的机会大 那就是直接n-1;
    所以答案就是   n-1-min(0,(原本就有的线(m)-减去最大度的节点那个树内部的线(du(max)-可以减去的机会))
     
    不知道有没有表达清楚
    代码:
     
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const ll mod=998244353;
    const int maxn=3e6+50;
    const ll inf=0x3f3f3f3f3f3f;
    int du[maxn];
    struct node{
        int x,y;
    };
    int main()
    {
        std::ios::sync_with_stdio(false);
        std::cin.tie(0);
        int t;
        cin>>t;
        while(t--){
            memset(du,0,sizeof(du));
            int n,m,k;
            int ans=0;
            cin>>n>>m>>k;
            for(int i=0;i<m;i++){
                int a,b;
                cin>>a>>b;
                du[a]++;
                du[b]++;
            }
            for(int i=0;i<n;i++){
                ans=max(ans,n-1-max(0,m-du[i]-k));
            }
            cout<<ans<<endl;
        }
        return 0;
    }
    

      

  • 相关阅读:
    详解Github的.gitignore忽略文件+.gitignore不生效解决方案+生产配置大奉送
    npm install报错 npm ERR! 的四种解决办法
    公司内部一次关于OOM故障复盘分享
    ubuntu16.04 安裝mysql5.7
    git formatpatch打分支(转载)
    通过修改包名解决引用easyExcel的poi版本冲突问题(转载)
    ASP.NET Core从2.1 > 3.1后出现 [The JSON value could not be converted to System.Nullable]错误 IT苦行僧
    apache2 修改配置文件提权
    linux motd提权
    python 多进程+多线程——子进程开多线程
  • 原文地址:https://www.cnblogs.com/luowentao/p/9465651.html
Copyright © 2020-2023  润新知