I. 题意
给定一个有 \(n\) 个顶点的完全图,可以删掉图中的一些边,删掉的边不能超过 \(m\) 条,问删去边之后的图最多能有几个连通分量.
II. 题解
III. 代码
#include<bits/stdc++.h>
using namespace std;
#define LL __int128
LL n,m;
LL bsearch(LL l, LL r)
{
while (l < r)
{
LL mid = (l + r + 1) / 2;
if (n*(n-1)/2-(n-mid)*(n-1-mid)/2<=m) l = mid;
else r = mid - 1;
}
return l;
}
int main()
{
int t;
cin>>t;
while(t--)
{
long long nt,mt;
cin>>nt>>mt;
n=(LL)nt,m=(LL)mt;
cout<<1+(long long)bsearch(0,n-1)<<endl;
}
return 0;
}