Codeforces 521 E cycling city】的更多相关文章

cf的一道题,非常有意思,题目是问图中是否存在两个点,使得这两个点之间有三条路径,而且三条路径没有公共点. 其实就是判断一下是否为仙人掌就行了,如果不是仙人掌的话肯定就存在,题目难在输出路径上,改了半天也不对,借鉴了一个dalao的代码.感觉非常神奇. 首先是判断是否为仙人掌,利用返祖边即可,如果一条树边被两条或者以上的返祖边覆盖,那么图就肯定不是一个仙人掌,利用差分可以实现. 然后是输出路径,找到一个被覆盖了两次的边,那么两条返祖边一定跨过了这个边,往上往下搜索就行了,找到了两条返祖边.那么路…
「CF521E」 Cycling City 传送门 首先你能发现这个东西一定是两个环的公共边. 最开始想的是什么如果一个点被访问过三次那它一定是公共边的某一端之类的东西,然后发现被仙人掌叉掉. 然后就不会了. 事实上有很简洁的做法:先求出原图的任意一棵 \(\texttt{DFS}\) 树,然后对于每一条非树边,它一定与一条树上的路径构成一个环,暴力覆盖知道某一条边被经过两次即可. 根据抽屉原理可得这样的复杂度是正确的,为 \(O(n)\). 当然我为了方便写的 \(O(n\log_2n)\)…
Cycling City 毒瘤题 首先建dfs树,由于是个无向图所有返祖边都是连向祖先的. 判是否有解其实很简单,只要图不是一个仙人掌就有解了. 仙人掌有关可以看这个博客 但是这道题由于要输出路径成功变成了一个一个顶俩的题..... 通过判仙人掌我们确认了一个点,它连向自己父亲的路径至少被两个边所覆盖. 然后我们可以从这个点开始深搜,找到这两个返祖,注意是返向这个点祖先的路径. 于是有起点就是这两个路径下端的lca,终点就是这两个路径上端点最深的一个(画图很好看出来的) 然后有哪些路径就显然了.…
Codeforces 题面传送门 & 洛谷题面传送门 大家都是暴力找生成树然后跳路径,代码不到 50 行(暴论)的一说--好,那本蒟蒻决定提供一种代码 150 行,但复杂度也是线性的分类讨论做法. 首先大家都是从"如果存在两个环相交,就一定存在符合要求的路径"这个性质入手的,而我不是.注意到题目条件涉及"简单路径",因此我首先想到的是,如果两个点 \(u,v\) 之间存在三条互不相交的路径,那么 \(u,v\) 在同一个点双连通分量中必定是必要条件,因此不同…
Okabe and City 题解: 将行和列也视为一个点. 然后从普通的点走到行/列的点的话,就代表这行/列已经被点亮了. 然后将费用为0的点建上边. 注意讨论(n,m)非亮的情况下. 代码: #include<bits/stdc++.h> using namespace std; #define Fopen freopen("_in.txt","r",stdin); freopen("_out.txt","w"…
题意:有横向和纵向的街道,每个街道只有一个方向,垂直的街道相交会产生一个节点,这样每个节点都有两个方向, 问是否每一个节点都可以由其他的节点到达.... 思路:规律没有想到,直接爆搜!每一个节点dfs一次,记录每个节节点被访问的次数!如果每个节点最终的访问次数 和所有节点的数目相同,则输出“YES", 否则输出”NO“ #include <queue> #include <string> #include <cstdio> #include <cstri…
题目大意:给定一张无向图,问图中是否存在两个点,使得这两个点之间有三条路径,而且三条路径没有公共点. 解法: 我们可以先走出来一个环,再出环上任意一点走到另外一点.就像这样:…
题目是来自HZW的博客(构造题我是各种不会...) Solved 1 / 1 A CodeForces 500A New Year Transportation Solved 1 / 1 B CodeForces 437C The Child and Toy Solved 1 / 2 C CodeForces 510C Fox And Names Solved 1 / 3 D CodeForces 475B Strongly Connected City Solved 1 / 2 E CodeF…
City Driving 题目连接: http://codeforces.com/gym/100015/attachments Description You recently started frequenting San Francisco in your free time and realized that driving in the city is a huge pain. There are only N locations in the city that interest yo…
[Codeforces 1239D]Catowise City(2-SAT) 题面 有n个主人,每个主人都有一只猫.每个主人认识一些猫(包括自己的猫).现在要选出一些人和一些猫,个数均大于0且总共为n,且所有人和所有猫都互不认识.判断是否有解,有解输出任意一组方案. \(n \leq 10^6\) 分析 如果选择人i参加,那么i认识的猫一定不能参加.那么i认识的猫的主人一定要参加.这样就可以保证少了认识的猫,但是多了认识猫的主人,人数和猫数之和仍为n. 因此可以这样建图:对于人i认识的每只猫的主…