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