CF23 B. Party
题意:
n个人参加聚会,他们中的某些人是朋友
首先朋友数为0的人会离开聚会
然后剩余朋友数为1的人(这1个人在之前还没有离开聚会)会离开聚会
然后剩余朋友数为2的人(这2个人在之前还没有离开聚会)会离开聚会
……
最后剩余朋友数为n-1的人(这n-1个人在之前还没有离开聚会)会离开聚会
请你构造他们的 朋友关系
使最后聚会剩下的人最多
结论:
n=1 剩余0人
其余都是剩余n-2人
问题转化为有一张n个点的图,给n个点随意加无向边
加完边后,先删去度数为0的点
然后删去度数为1的点和相关联的边
然后删去度数为2的点和相关联的边
……
最后删去度数为n-1的点和相关联的边
问最少可以删除多少点
首先度数最小的点一定会被删除,所以至少会删除一个点
证明至少要删除2个点:
假设只有1个点会被删除,设它的度数为d,则这个点是唯一度为d的点,且其他所有的点的度数>=d+1
删除这个点之后,与这个点有边相连的点的度数都会减1
接下来面临删除的点是度数>d且度数最小的点
如果其他的点都不会被删除,要求他们的现在度数都<=d,即初始度数都<=d+1
所以所有的点都从度数为d+1变为了度数为d
所以这个点与其他所有点都有边,即它的度数为n-1
这与这个点是唯一度数最小的点相悖
所以至少要删除2个点
能否构造出删除2个点的构图?
让n-2个点与除自己的所有点都有边
剩余2个点与那n-2个点都有边
这样的话会在删除度数为n-2时删去那2个点,那n-2个点的度数为变为n-2,再也不会被删除