Codeforces 1209D Cow and Snacks

题目大意

有 $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 e y_i$

分析

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

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

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

原文地址:https://www.cnblogs.com/Patt/p/11530957.html