![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图
winhcc
这个作者很懒,什么都没留下…
展开
-
Codeforces 1209D
有k人,每个人都想得到n中物品中的两件,如果一个人一件都没有得到,那么就会不高兴,求不高兴的人数。 把物品看成点,人看成边,如果一个点被访问过,那么一定有一个人被满足了 如果一个连通分量有m个点,无论有多少条边,只能最多有m-1条边是第一次访问这些点的,也就是只有m-1个人能被满足,所有人数减去被满足的人数即答案 #include<bits/stdc++.h> using namesp...原创 2019-09-26 15:10:01 · 212 阅读 · 0 评论 -
Codeforces 1217D
一个有向图,把边染色后使得相同颜色的边无法构成环,求最大颜色数。 原图若没有环,则答案为1,否则答案为2,只要一个环中的边染不同颜色即可。问题就是如何高效的使环中的边染不同颜色,考虑到是有向图,如果有环,则肯定有a - > b , b -> c , c -> a 类似的情形,因此只要判断边的两个端点大小即可, u > v 染1 u < v 染2 这样环中必定有不同的颜...原创 2019-09-26 16:10:33 · 253 阅读 · 0 评论 -
Codeforces 1213G
一个有向图,每条边都有一个权值,有m个询问,每个询问找出有多少对点使得这些点对之间的最大边权不大于q 直接建图搞不好做,也许是我不会吧 考虑要查询的值为x,当前有一条边,其权值为x-1,连接的两个连通分量大小为sz1和sz2,那么很显然这条边的贡献就是sz1*sz2 而权值小的边一直都对更大的查询有贡献。 从而想到,可以讲边和查询排序,然后用并查集维护连通分量的大小。 #include<bi...原创 2019-09-26 17:05:00 · 255 阅读 · 0 评论 -
Codeforces 1228D
一个无向简单图,问是否能把图分成三个点集,使得每个点集内部的点没有边相连,点集之间所有点都要两两相连。 好像3-sat啊 由于如果存在的话,那么一个点和它相连的点都不在同一个点集中。所以先假设存在,把点染成1、2、3三种颜色之一,然后判断是否成立即可。 必须有三种颜色 同一个点集中不能有边 点集A和点集B之间的边的个数必须要是size(A) * size(B) #include<bits/s...原创 2019-10-02 15:57:08 · 284 阅读 · 0 评论