zoukankan      html  css  js  c++  java
  • CF1065B Vasya and Isolated Vertices 题解

    CF1065B Vasya and Isolated Vertices 题解

    题目分析

    看着构造的标签进来的,进来前没想到这么简单

    首先保留节点的最小值,就是让每一条边连接当前度数为 0 的两个点,这样子可以最大程度地利用每一条边。

    所以 (min=max(0,n-2*m))

    那么保留节点的最大值,也就等价于最少的点连最多的边,很容易想到完全图,也就是点数为 (n) 的简单图 (G) ,最多有 (frac{n*(n-1)}{2}) 条边。

    二分出边数 (geq m) ,点数最小且为 (t) 的完全图,

    (max=n-t)

    Code:

    #include<bits/stdc++.h>
    using namespace std;
    template <typename T>
    inline void read(T &x){
        x=0;char ch=getchar();bool f=false;
        while(!isdigit(ch)) f|=ch=='-',ch=getchar();
        while(isdigit(ch))  x=(x<<1)+(x<<3)+(ch^48),ch=getchar();
        x=f?-x:x;return;
    }
    template <typename T>
    inline void print(T x){
        if(x<0) putchar('-'),x=-x;
        if(x>9) print(x/10);
        putchar(x%10^48);return;
    }
    #define ll long long
    ll n,m;
    int main(){
        read(n),read(m);ll minn=0,maxn=0;
        minn=max(0ll,n-2*m);print(minn),putchar(' ');
        ll l=0,r=n;
        while(l<=r){
            ll mid=(l+r)>>1;
            if(mid*(mid-1)/2>=m)    r=mid-1,maxn=mid;
            else l=mid+1;
        }
        print(n-maxn);
        return 0;
    }
    
  • 相关阅读:
    printcap
    browser-ua
    PHP 开发 APP 接口 学习笔记与总结
    Java实现 LeetCode 72 编辑距离
    Java实现 LeetCode 72 编辑距离
    Java实现 LeetCode 72 编辑距离
    Java实现 LeetCode 71 简化路径
    Java实现 LeetCode 71 简化路径
    Java实现 LeetCode 71 简化路径
    Java实现 LeetCode70 爬楼梯
  • 原文地址:https://www.cnblogs.com/NuoCarter/p/15261727.html
Copyright © 2011-2022 走看看