#490. Cereal 2
Cereal 2
Cereal 2
题目描述
Farmer John 的奶牛们最喜欢的早餐莫过于麦片了!事实上,奶牛们的胃口非常大,每顿饭都会吃掉整整一盒麦片。 农场最近收到了一批包含 种不同麦片的货物 。不幸的是,每种麦片都只有一盒!每头奶牛共有 头 ,都有一种最喜欢的麦片和一种第二喜欢的麦片。当给奶牛一个可选择的麦片集合时,她会执行如下过程: 如果她最喜欢的麦片盒仍然可用,就拿走并离开。 否则,如果她第二喜欢的麦片盒仍然可用,就拿走并离开。 否则,她会失望地哞哞叫,然后不拿任何麦片就离开。 请在你可以最优地重排列奶牛出场顺序的前提下,求最少有多少头奶牛会挨饿。 同时,找出任意一种能达到该最小值的 头奶牛的排列。
输入格式
第一行包含两个用空格分隔的整数 和 对于每个 第 行包含两个用空格分隔的整数 和 ( 且 ),分别表示第 头奶牛最喜欢和第二喜欢的麦片编号。
输出格式
输出最少挨饿的奶牛数量,然后输出任意一个能达到该最小值的 的排列。如果有多个排列,输出任意一个都可以通过。
8 10
2 1
3 4
2 3
6 5
7 8
6 7
7 5
5 8
1
1
3
2
8
4
6
5
7
提示
在该示例中,有 头奶牛以及 种麦片。 注意,我们可以将前三头奶牛与后五头奶牛的情况分开独立解决,因为它们没有共同的最喜欢麦片。 如果前三头奶牛按顺序 选择,那么奶牛 会选择麦片 ,奶牛 会选择麦片 ,奶牛 会挨饿。 如果前三头奶牛按顺序 选择,那么奶牛 会选择麦片 ,奶牛 会选择麦片 ,奶牛 会选择麦片 ;这些奶牛都不会挨饿。 当然,还有其他排列也能使前三头奶牛都不挨饿。例如,若前三头奶牛按顺序 选择,则奶牛 会选择麦片 ,奶牛 会选择麦片 ,奶牛 会选择麦片 ;同样,奶牛 都不会挨饿。 可以证明,在最后五头奶牛中,至少有一头必须挨饿。 SCORING: 在 个测试点中有 个满足 。 在 个测试点中有 个没有额外限制。 Problem credits: Dhruv Rohatgi
标签: USACO|2022|Silver
来源
USACO|2022|Silver