码迷,mamicode.com
首页 > 其他好文 > 详细

Educational Codeforces Round #52 B. Vasya and Isolated Vertices

时间:2018-10-12 13:43:45      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:\n   scan   self   ==   利用   contest   fprintf   elf   class   

http://codeforces.com/contest/1065/problem/B

问题

给定问 \(N\)\(M\),问 \(N\) 个点 \(M\) 条边且没有重边和自环的无向图最多、最少有多少个孤立点 。

题解

最少的话,可以两个两个连,最大化对边的利用。

最多的话,可以一堆点尽量往完全图连,剩下的都是孤立点。

#include <bits/stdc++.h>

#ifdef LOCAL
    #define debug(...) fprintf(stderr, __VA_ARGS__)
#else
    #define debug(...) 0
#endif

using namespace std;
typedef long long ll;
typedef unsigned int uint;
typedef unsigned long long ull;
typedef pair<int, int> pii;

int rint() {
    int n, c, sgn = 0;
    while ((c = getchar()) < ‘-‘);
    if (c == ‘-‘) n = 0, sgn = 1;
    else n = c - ‘0‘;
    while ((c = getchar()) >= ‘0‘) {
        n = 10 * n + c - ‘0‘;
    }
    return sgn ? -n : n;
}

int main() {
    ll n, m; // f**k myself
    scanf("%lld %lld", &n, &m);

    if (m == 0) {
        printf("%lld %lld\n", n, n);
        return 0;
    }
    if (n == 1) {
        puts("1 1");
        return 0;
    }

    ll mi = (2 * m >= n ? 0 : n - 2 * m);
    ll ma = 2;
    while (ma < n && ma * (ma - 1) < 2 * m) ma++;
    assert(ma >= 2);
    ma = n - ma;

    printf("%lld %lld\n", mi, ma);
    return 0;
}

总结

没开 long long 就错了两次。。。也不知道该说啥了,以后不要这么迷吧。

Educational Codeforces Round #52 B. Vasya and Isolated Vertices

标签:\n   scan   self   ==   利用   contest   fprintf   elf   class   

原文地址:https://www.cnblogs.com/hfccccccccccccc/p/9777445.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!