Educational Codeforces Round #52 B. Vasya and Isolated Vertices

Posted hfccccccccccccc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Educational Codeforces Round #52 B. Vasya and Isolated Vertices相关的知识,希望对你有一定的参考价值。

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);
        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
", mi, ma);
    return 0;
}

总结

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

以上是关于Educational Codeforces Round #52 B. Vasya and Isolated Vertices的主要内容,如果未能解决你的问题,请参考以下文章

Educational Codeforces Round 7 A

Educational Codeforces Round 7

Educational Codeforces Round 90

Educational Codeforces Round 33

Codeforces Educational Codeforces Round 54 题解

Educational Codeforces Round 27