Codeforces 1209D Cow and Snacks】的更多相关文章

CodeForces - 1209D 题意 现在n种点心,每种点心只有一份,有k位客人,每位客人有两种想要吃的点心,你可以安排他们进场的顺序,每位客人会吃掉所有他想要吃的,并且还没被吃掉的点心.如果客人一个也没吃到,他就会不开心,问最少的不开心的人是多少? 思路 刚开始以为只会吃掉一个,直接按照第一个元素大小排序,WA了. 一直到比赛结束我都没搞清题意,赛后搜题解很懵逼,怎么和并查集扯上的关系,这不是贪心吗? 题意读错了... 第一个客人肯定是把两个都吃掉了,这时为了满足其他的客人,我们要选择的…
题目大意 有 $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…
​ D. Cow and Snacks 参考:Codeforces 1209D. Cow and Snacks 思路:利用并查集,构建一个生成树,然后树的边数就是能够开心的客人的人数.用一个条件find(u)!=find(v)(我在代码里反了一下),来统计某一种味道的菜是否已经被吃掉,如果等于,则证明已经被吃掉. 另外:find()函数一定要记得记忆化,不然很容易超时 代码: // Created by CAD on 2019/9/18. #include <bits/stdc++.h> us…
D. Cow and Snacks 题意:有n种小吃,m个人,每个人有两种喜欢的小吃,当一个人遇到两种自己都喜欢的小吃,可以都吃掉,问在最优的吃小吃顺序下,不能吃到自己喜欢的小吃的人数最少是多少? 题解:把n种小吃当作n个点,m个人当作m条边,每个连通图里面第一个吃的人,一定是可以吃两种自己喜欢的小吃.每次判断这条边是否在已有的联通图里面,对已经在连通图里面的边,是一定不能吃到小吃,若不在连通图里面,则一定可以吃到小吃,用cnt统计可以吃到小吃的人数,最后m-cnt就是答案 #include<i…
链接: https://codeforces.com/contest/1209/problem/D 题意: The legendary Farmer John is throwing a huge party, and animals from all over the world are hanging out at his house. His guests are hungry, so he instructs his cow Bessie to bring out the snacks!…
题意:https://codeforc.es/contest/1209/problem/D 有n个点心,有k个人,每个人都有喜欢的两个点心,现在给他们排个队,一个一个吃,每个人只要有自己喜欢的点心就会吃掉(不会留给后面的人). 如果有人什么都没吃就会不开心,问怎么安排使不开心的人最少. 思路: 看成一个图的问题,点心是节点,人是一条边.对于每个连通块,总会有一个人吃两个点心,其他人吃一个(其中一个是其他人也就吃掉了的). 可以保证这样是最优的,所有每个连通块的答案是连通数 x-1. #defin…
Discription Farmer John is hosting a tennis tournament with his n cows. Each cow has a skill level si, and no two cows having the same skill level. Every cow plays every other cow exactly once in the tournament, and each cow beats every cow with skil…
题意: 有 n个不同的糖果,从 1到 n编号.有 k个客人.要用糖果招待客人.对于每个客人,这些糖果中恰有两个是其最爱.第 i个客人最爱的糖果编号是 xi和 y.将 k 个客人任意排列,他们按顺序去拿自己最爱的糖果.客人要拿到至少一个最爱的糖果才满意.求不满意的客人的最小数目. 题解: 题目让求不满意客人最小数量,那么就肯定会有这样情况发生: 3 3 1 2 1 3 1 3 刚开始1号客人喜欢1和2糖果,因为1和2号糖果都没被用过,那么我们就先把1号糖果分给1号客人,后面第二个客人喜欢1和3号糖…
传送门 A. Paint the Numbers 签到. Code #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 105; int n; int a[N]; bool used[N]; int main() { ios::sync_with_stdio(false); cin.tie(0); cin >> n; for(int i = 1; i <= n; i…
怎么老是垫底啊. 不高兴. 似乎 A 掉一道题总比别人慢一些. A. Paint the Numbers 贪心,从小到大枚举,如果没有被涂色,就新增一个颜色把自己和倍数都涂上. #include<bits/stdc++.h> #define fec(i, x, y) (int i = head[x], y = g[i].to; i; i = g[i].ne, y = g[i].to) #define dbg(...) fprintf(stderr, __VA_ARGS__) #define F…