Codeforces 1209D Cow and Snacks

本文探讨了一道关于糖果分配的算法问题,通过构建图模型,分析了如何最小化不满意的客人数量。关键在于理解图的连通分量与客人满意度的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目大意

有 $n$ 个不同的糖果,从 $1$ 到 $n$ 编号。有 $k$ 个客人。要用糖果招待客人。
对于每个客人,这些糖果中恰有两个是其最爱。第 $i$ 个客人最爱的糖果编号是 $x_i$ 和 $y_i$ 。
将 $k$ 个客人任意排列,他们按顺序去拿自己最爱的糖果。
客人要拿到至少一个最爱的糖果才满意。
求不满意的客人的最小数目。

数据范围

  • $2 \le n \le 10^5$
  • $1 \le k \le 10^5$
  • $1 \le x_i, y_i \le n$, $x_i \ne y_i$

分析

这道题可以用图(graph)来刻画。
将 $n$ 个糖果看成 $n$ 个点。
把第 $i$ 个客人看成连接 $x_i, y_i$ 的无向边。
客人拿糖果可以看成从图中删掉对应的边,并将与这条边关联的端点也取走。
客人被满足等价于删边时至少有一个端点还在。

不难看出,一个连通分量有 $c$ 个点意味着有且最多有 $c - 1$ 个客人能被满足。

设共有 $C$ 个连通分量,则有且至多有 $N - C$ 个客人能被满足。

转载于:https://www.cnblogs.com/Patt/p/11530957.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值