题意:

  以每个点为起点,找到第一个出现两次的点

解析:

  我是先找出来所有的环  环上的点找出来的肯定是自己 bz[i]  = i;

然后去遍历不在环上的点j  如果通过这个点找到一个已经标记的的点i  那么bz[j] = bz[i];

行吧。。。其实直接暴力 就几行代码。。。真是的。。。过分。。。。我真是垃圾啊。。啦啦啦。。。呸。。

#include <bits/stdc++.h>
using namespace std;
const int maxn = , INF = 0x7fffffff;
vector<int> G[maxn];
vector<int> f;
int vis[maxn], bz[maxn], a[maxn];
int s, t, tmp;
void dfs1(int u)
{
vis[u] = ;
for(int i=; i<G[u].size(); i++)
{
int v = G[u][i];
if(!vis[v])
dfs1(v);
else if(u != v)
{
s = v;
tmp = u;
return;
}
else
{
bz[v] = v;
return;
}
}
if(u == s)
t = tmp;
} void dfs2(int u)
{
bz[u] = u;
if(u == t) return;
for(int i=; i<G[u].size(); i++)
dfs2(G[u][i]);
} int dfs3(int u)
{
if(bz[u]) return bz[u];
for(int i=; i<G[u].size(); i++)
return dfs3(G[u][i]);
} int main()
{
int n, v;
cin>> n;
for(int i=; i<=n; i++)
{
cin>> a[i];
G[i].push_back(a[i]);
}
for(int i=; i<=n; i++)
if(!vis[i])
{
s = t = tmp = INF;
dfs1(i);
if(s != INF && t != INF)
dfs2(s);
}
for(int i=; i<=n; i++)
{
if(bz[i]) continue;
else
bz[i] = dfs3(i);
}
for(int i=; i<=n; i++)
cout<< bz[i] << " ";
cout<<endl; return ;
}

Codeforces - 1020B Badge(找环)的更多相关文章

  1. Mouse Hunt CodeForces - 1027D(思维 找环)

    Medicine faculty of Berland State University has just finished their admission campaign. As usual, a ...

  2. Codeforces Beta Round #88 C. Cycle —— DFS(找环)

    题目链接:http://codeforces.com/problemset/problem/117/C C. Cycle time limit per test 2.5 seconds memory ...

  3. Codeforces Round #369 (Div. 2) D. Directed Roads —— DFS找环 + 快速幂

    题目链接:http://codeforces.com/problemset/problem/711/D D. Directed Roads time limit per test 2 seconds ...

  4. 【CodeForces】915 D. Almost Acyclic Graph 拓扑排序找环

    [题目]D. Almost Acyclic Graph [题意]给定n个点的有向图(无重边),问能否删除一条边使得全图无环.n<=500,m<=10^5. [算法]拓扑排序 [题解]找到一 ...

  5. CodeForces 711D Directed Roads (DFS找环+组合数)

    <题目链接> 题目大意: 给定一个$n$条边,$n$个点的图,每个点只有一条出边(初始状态),现在能够任意对图上的边进行翻转,问你能够使得该有向图不出先环的方案数有多少种. 解题分析: 很 ...

  6. [图中找环] Codeforces 659E New Reform

    New Reform time limit per test 1 second memory limit per test 256 megabytes input standard input out ...

  7. zstu.4191: 无向图找环(dfs树 + 邻接表)

    4191: 无向图找环 Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 117  Solved: 34 Description 给你一副无向图,每条边有 ...

  8. Cyclic Components CodeForces - 977E(找简单环)

    题意: 就是找出所有环的个数, 但这个环中的每个点都必须只在一个环中 解析: 在找环的过程中 判断度数是否为2就行...emm... #include <bits/stdc++.h> us ...

  9. SGU 219 Synchrograph tarjian找环,理解题意,图论 难度:3

    http://acm.sgu.ru/problem.php?contest=0&problem=219 题目大意: 如果指向某个点的边权全都为正数,那么这个点就是可点燃的,点燃操作把入弧权值- ...

随机推荐

  1. oracle版本兼容问题

    问题一描述:本机环境升级为vs2012升级TLS程序为framework4.0,本机ODAC为ODTwithODAC112030.本机为oracle10g本机程序生成成功,运行成功. 发布到服务器后, ...

  2. [浅谈CSS核心概念] CSS布局模型:float和position

    1.流动模型 HTML元素在默认情况下都是按照"流动模型"进行布局的,网上也有人称之为"普通流"."文档流"之类的.这种布局模式的特点在于: ...

  3. 第16章 STM32中断应用概览

    第16章     STM32中断应用概览 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fi ...

  4. # 2017-2018-2 20155319『网络对抗技术』Exp2:后门原理与实践

    2017-2018-2 20155319『网络对抗技术』Exp2:后门原理与实践 1.实验准备 一.实验说明 任务一:使用netcat获取主机操作Shell,cron启动 (0.5分) 任务二:使用s ...

  5. how2j 的shiro教程初探

    教程案例里的mysql连接器只支持mysql,不支持mariadb,如果用的不是mysql,创建连接时会报错.

  6. [LOJ#6066]. 「2017 山东一轮集训 Day3」第二题[二分+括号序列+hash]

    题意 题目链接 分析 首先二分,假设二分的答案为 \(mid\),然后考虑利用括号序列来表示树的形态. 点 \(u\) 的 \(k-\) 子树的括号序列表示实际上是刨去了 \(u\) 子树内若干个与 ...

  7. 基于HTTPS的中间人攻击-BaseProxy

    前言 在上一篇文章BaseProxy:异步http/https代理中,我介绍了自己的开源项目BaseProxy,这个项目的初衷其实是为了渗透测试,抓包改包.在知识星球中,有很多朋友问我这个项目的原理及 ...

  8. Android 实现 WheelView

    wheel view 目录(?)[-] Android WheelView效果图 网上的开源代码 实现思路 扩展Gallery 如何使用 我们都知道,在iOS里面有一种控件------滚筒控件(Whe ...

  9. C#_IO操作

    1.创建文件夹 //using System.IO; Directory.CreateDirectory(%%1);   2.创建文件 //using System.IO; File.Create(% ...

  10. 记录:tf.saved_model 模块的简单使用(TensorFlow 模型存储与恢复)

    虽然说 TensorFlow 2.0 即将问世,但是有一些模块的内容却是不大变化的.其中就有 tf.saved_model 模块,主要用于模型的存储和恢复.为了防止学习记录文件丢失或者蠢笨的脑子直接遗 ...