CF1019C Sergey's problem】的更多相关文章

题意 找出一个集合 \(Q\),使得其中的点两两之间没有连边,且集合中的点可以走不超过两步到达其他所有不在集合中的点.输出任意一组解. \(n\leq 10^6\) 分析 考虑构造,先从 \(1\) 到 \(n\) 枚举是否存在一个点 \(u\) 还没有被标记过,如果没有就用 \(u\) 去标记能够走到的点,同时将 \(u\) 加入 \(Q\). 容易证明这样的构造方式能够保证条件2:如果 \(u\) 的入度为 0 那么一定会加入 \(Q\) ,否则如果不在 \(Q\) 中就一定有一个能够到 \…
题目大意:给你一个有向连通图,让你找出一个点集,保证点集内的点之间没有直接连边,且集合中存在一点,到一个 非点集中的点的距离小于等于2 思路很清奇 首先编号从小到大遍历每个点,如果这个点没有被访问过,把它加入集合中,再把和它的出边连接的点都标记为访问过, 如此做,会发现集合内的点到集合外的点距离最大是1 但这样做就会不满足条件1,因为是有向图,已经在集合内的点中,编号大的点可能会指向编号小的点 再按编号倒序遍历集合中的点,如果它指向了一个编号较小的,且在集合中的点,那么把那个点从集合中删除 这样…
E. Sergey's problem [题目描述] 给出一个n个点m条边的有向图,需要找到一个集合使得1.集合中的各点之间无无边相连2.集合外的点到集合内的点的最小距离小于等于2. [算法] 官方题解证明的很强.对任意一个点 a(未访问过)删去其所有子节点,若剩余点组成的新图的答案集合不存在到 a 的边,则将 a 加入答案集合中:否则 删去a.一遍正向对 1~n 的每一个点遍历,保留父节点打上标记 -1,子节点打上标记 1.下一步就是删去不满足条件的点,对任意一个标有 -1 的点 i,首先应该…
原文链接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…
题意: 找出来一个点集S  使得S中的点不能互相通过一步到达 并且S中的点 可以在小于等于2的步数下到达所有的点 要父结点 不要子结点 这样就求出来一个点集S‘  而S'中可能存在 v -> u 这样的路 所以从后向前遍历 结点 把S’中的点的子结点且在S‘中的点  再从S'中去除掉 关于为什么从后向前 而不是从前向后 : 因为S’中剩余的是 v -> u  从后向前可以保证隔一个标记一个 而从前向后的话 可能使得S‘中的点到达其它点的步数大于二 画图想一下就出来了 #include <…
链接 大意: 给定有向图, 求选择一个点集$S$, 使得$S$任意两点不相连, 且对于不属于$S$的任意点$x$, 均存在$S$中的点$y$, 使得$d(x,y)<=2$, $d(x,y)$为从$x$到$y$的最短路 对于图G, 任选一点M, 删除d(M,x)=1的所有x以及M, 得到生成子图G', 假设已经得到G'的解S', 若S'中有点x使得d(x,M)=1,则S'就是G的解, 否则S'并M构成G的解 #include <iostream> #include <algorith…
感觉这种构造题好妙啊,可我就是想不到诶. 给出一张无自环的有向图,回答一个独立集,使得图中任意一点都可以被独立集中的某一点两步之内走到. 具体构造方案如下: 下标从小到大枚举点,如果该点没有任何标记,则将其标记为$-1$,即答案的候选点,并把它能一步走到的未访问的点标记为$1$,即不会成为答案的点. 下标从大到小进行第二次枚举,如果该点被标为$-1$并且没有被丢弃,则选则该点,并把它能一步走到的点丢弃. 我们来考虑它的正确性: 显然它是一个独立集.唯一的问题在与它有可能出现两个同为$-1$的点相…
从这里开始 题目列表 瞎扯 Problem A New Building for SIS Problem B Badge Problem C Elections Problem D The hat Problem E Sergey's problem 瞎扯 例行快速切A.B.C. 然后发现D是交互.E也不像是我能做的题,感觉完蛋了. 最后8分钟想出D.狂码代码,然后比赛结束后1分钟过样例. 第二天早上再花4分钟AC.我真是个大菜逼.. 于是这场cf比赛变成了真·手速场.几个friends手速比我…
时间相对来说还是比较合适的,正好放假就可以打一打啦. A. New Building for SIS:http://codeforces.com/contest/1020/problem/A 题意概述:有n座楼,每座楼有h层.上一层楼和下一层楼各需要一分钟,在a,b两层之间有跨楼的通道,每次可以走到相邻的楼,时间也是一分钟,给出k组询问,求每组点对之间的最小时间. 打CF学英语.一开始看起来像是最短路,但是画画图就发现并没有那么复杂,首先两栋楼之间的那一段是无论如何都要走的,关键是a,b的限制,…