CF1019C】的更多相关文章

好玄学的东西... 核心思想:for循环! 首先,我们从前向后扫所有的点,如果这个点没被标记成不可用就把这个点标记成已使用,然后把所有与这个点直接相连的点标记成不可用 接下来,我们从后向前扫所有的点,如果这个点被标记成已使用就把与这个点所有直接相连的也被标记已使用的点达成不能使用,最后标记成可使用的就是集合中的点 证明一下这个算法的正确性: 首先,经过第一步操作后,第二个要求一定能够满足,因为现在集合中的点和集合外的点的距离至多是1!(如果这个点不在集合里,说明这个点一定已经被一个在集合里的点标…
题意 找出一个集合 \(Q\),使得其中的点两两之间没有连边,且集合中的点可以走不超过两步到达其他所有不在集合中的点.输出任意一组解. \(n\leq 10^6\) 分析 考虑构造,先从 \(1\) 到 \(n\) 枚举是否存在一个点 \(u\) 还没有被标记过,如果没有就用 \(u\) 去标记能够走到的点,同时将 \(u\) 加入 \(Q\). 容易证明这样的构造方式能够保证条件2:如果 \(u\) 的入度为 0 那么一定会加入 \(Q\) ,否则如果不在 \(Q\) 中就一定有一个能够到 \…
题目大意:给你一个有向连通图,让你找出一个点集,保证点集内的点之间没有直接连边,且集合中存在一点,到一个 非点集中的点的距离小于等于2 思路很清奇 首先编号从小到大遍历每个点,如果这个点没有被访问过,把它加入集合中,再把和它的出边连接的点都标记为访问过, 如此做,会发现集合内的点到集合外的点距离最大是1 但这样做就会不满足条件1,因为是有向图,已经在集合内的点中,编号大的点可能会指向编号小的点 再按编号倒序遍历集合中的点,如果它指向了一个编号较小的,且在集合中的点,那么把那个点从集合中删除 这样…
原文链接https://www.cnblogs.com/zhouzhendong/p/CF1019C.html 题目传送门 - CF1019C 题意 给定一个有 $n$ 个节点 . $m$ 条边的有向图,没有自环,但是可能存在环. 现在要求选出一个点集满足一下条件. 设原来的所有点构成的点集为 $V$ ,选出的点集为 $S$,则: 1. 对于所有满足 $x,y\in S$ 的点 $x,y$ ,有向边 $(x,y)$ 不存在. 2. 对于所有满足 $y\in V$ 的点,都可以找到一个点 $x(x…
题意: 思路:这是一道论文题 https://link.springer.com/content/pdf/10.1007/BFb0066192.pdf From http://www.cnblogs.com/zhouzhendong/p/CF1019C.html #include<cstdio> #include<cstring> #include<string> #include<cmath> #include<iostream> #inclu…