214 字
1 分钟

SP7015 CFPARTY - Party 题解

2023-09-08
浏览量 加载中...

前言#

这题不难,前提在于你想到了没。

大致题意#

nn 个人,先去掉没有朋友的人,再去掉有 11 个朋友的人,以此类推。求出最后剩下多少人。

抽象题意#

构造一张有 nn 个结点的图,依次删去度数为 00n1n-1 的结点,直至无法删除,求出最后最多能剩余几个结点。

思路/解析#

若这 nn 个点两两相连,则有 n×(n1)÷2n\times(n-1)\div2 条边,这样每个结点的度数都为 n1n-1,都会被删去。

如果删去一条边,就有两个结点的度数变成了 n2n-2,会在别的 n2n-2 个点之前被删去,删去后剩下的结点的度数变成了 n2n-2,不会被删去。所以最优方案为剩下 n2n-2 个点。

代码#

#include<bits/stdc++.h>
using namespace std;
int T,x;
int main(){
cin>>T;
while(T--)cin>>x,cout<<max(x-2,0)<<'\n';
}

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
SP7015 CFPARTY - Party 题解
https://blog.walterfang.site/posts/solution-sp7015/
作者
Walter_Fang
发布于
2023-09-08
许可协议
CC BY-NC-SA 4.0
最后更新于 2023-09-08,距今已过 852 天

部分内容可能已过时

评论区

目录