感觉我好水啊,,,做个noip往年题目还天天只想做最简单的,,,实在太菜辽

然后最水的题目还不会正解整天想着乱搞,,,  虽然也搞出来辽233333

好滴不扯辽赶紧写完去做紫题QAQ

正解:并查集  /乱搞

解题报告:

ummm,,,因为我太弱辽还没有尝试并查集所以先写一发乱搞,,,

我发现我现在真滴好弱,,,我现在做题就是靠爆搜+数据结构再搞个优化骗分QAQ

umm乱搞就hin简单鸭,就顺着最傻逼的思路优化一下就over辽

首先是想到模拟嘛,一个个人地走,但这样肯定会超时noip应该不至于出这种,傻逼题?

然后你再看下题目,理解一下我们到底是要求什么?

最小环

那我们可以先把不是环的一部分的玩意儿给剔除

然后再进一步想

因为每个人只告诉一个人,那么每个环一定是相互独立的

然后你就可以,先筛选,然后bfs走一波看每个环多大就结束辽

然后优化就是,如果目前这个环还没扫完然而已经比我已知的答案要大了就直接退出,显然不是答案这不用思考嘛

然后就结束辽,,,

如果想再高大上一点可以先ran一个环?万一人品好还是可以节省点儿时间的

没了

哦忘记放代码辽QAQ

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define rp(i,x,y) for(register ll i=x;i<=y;++i)
ll n,fa[],ans=,rd[];
];
ll read()
{
    ;;
    '))ch=getchar();
    ;
    )+(x<<)+(ch^'),ch=getchar();
    return y?x:-x;
}
queue<ll>Q;
void cl(ll x)
{
    rd[fa[x]]--;
    if(!rd[fa[x]])cl(fa[x]);
    return;
}
void wk(ll x)
{
    ll cnt=;
    ll now=fa[x];
    ,now=fa[now],cnt++;>=ans)return;}
    ans=min(ans,cnt+);
    return;
}
int main()
{
    n=read();
    rp(i,,n)fa[i]=read(),rd[fa[i]]++;
    rp(i,,n)if(!rd[i])cl(i);
    rp(i,,n){if(rd[i] && !vis[i])wk(i);}
    printf("%lld",ans);
    ;
}

/*看到tag说是并茶几,,,开始也想到了,,,但是感觉无法实现所以本来准备放弃这个想法的
 然后认真地想了一下之后发现不会,我好像只能拿个暴力,,,不行真的心痛,,,太弱了!
所以还是认真想下这题并茶几的解趴quqqqqq*/

//,,,我有一个大胆的想法,,,是什么让我产生了暴力不行的想法啊,,,我觉得就开两个数组一步步跟着它爹走就出来了,,,我是不是想得太简单了QAQ

,,,我真蠢,真的QAQ

并查集解法还没做,周一之前会补上滴!

(哦其实我觉得也不是特别特别乱搞?有点图论的意思在里面趴?

然后开始我还想了下,我jio得可以用求强连通分量滴方法求?应该也是可以实现的趴?

over

洛谷P2661 信息传递 [NOIP2015] 并查集/乱搞 (待补充!的更多相关文章

  1. 洛谷 P2661 信息传递(并查集 & 最小环)

    嗯... 题目链接:https://www.luogu.org/problemnew/show/P2661 这道题和一些比较水的并查集不太一样,这道题的思路就是用并查集来求最小环... 首先,如果我们 ...

  2. 洛谷 P2661 信息传递 Label:并查集||强联通分量

    题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...

  3. 洛谷P2661 信息传递【并查集】

    题目:https://www.luogu.org/problemnew/show/P2661 题意: 有一个有向图,问最小环的的大小. 思路: 明明是图的遍历,但是bfs会T.第二组下下来的数据n居然 ...

  4. 洛谷P2661 信息传递(最小环,并查集)

    洛谷P2661 信息传递 最小环求解采用并查集求最小环. 只适用于本题的情况.对于新加可以使得两个子树合并的边,总有其中一点为其中一棵子树的根. 复杂度 \(O(n)\) . #include< ...

  5. 洛谷P2661 信息传递==coedevs4511 信息传递 NOIP2015 day1 T2

    P2661 信息传递 题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知 ...

  6. 洛谷P2661 信息传递——并查集

    给一手链接 https://www.luogu.com.cn/problem/P2661 这道题就是 并查集求最小环 TIPS:压缩路径的时候d[x]=d[fa[x]]+d[x],而不是d[x]=d[ ...

  7. 洛谷 P2661 信息传递 题解

    P2661 信息传递 题目描述 有 \(n\) 个同学(编号为 \(1\) 到 \(n\) )正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为 \(i\) 的同学的信息传 ...

  8. [NOIP2015] 提高组 洛谷P2661 信息传递

    题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...

  9. NOIP2015提高组T2 洛谷P2661 信息传递

    题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...

随机推荐

  1. 【RF库Collections测试】Reverse List

    Name:Reverse ListSource:Collections <test library>Arguments:[ list_ ]Reverses the given list i ...

  2. ConcurrentModificationException 详解

    工作中碰到个ConcurrentModificationException.代码如下: List list = ...;for(Iterator iter = list.iterator(); ite ...

  3. HTML 水平线

    <hr /> 标签可以在 HTML 页面中创建水平线,通常用来分隔文章中的小节 <!DOCTYPE HTML> <html> <body> <p& ...

  4. c语言学习笔记---符号

    专题2.符号的技巧: 1) 注释符与转义符 vC语言中的接续符(\)是指示编译器行为的利器: 接续符的使用:编译器会将反斜杠剔除,嗯在反斜杠后面的字符自动解到前面的一行. 在接续单词时,反斜杠之后不能 ...

  5. adc转换原理

    模数转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件.通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号.由于数字信号本身不具有实际意义,仅仅表示一个相对大 ...

  6. C 预处理

    http://baike.baidu.com/link?url=0mwKZRcxHuNHa_TiwXgpQPS2S-YbOGCUJVSgZ9sb-qe-G-x4oIDZpWuZqiVNBsMYA4HT ...

  7. 这样理解 HTTPS 更容易(Maybe)

    摘要:本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样.但是这并不代表HTTPS的真实设计过程.在阅读本文时,你可以尝试放下已有的对HTTPS的理解,这样更利于“还原”过 ...

  8. 发现linux主机再用代理上网的情况下不能用wget从外网下载资源

    公司禁网(也不是完全禁,能连接外网数据库,不能下载东西,不能打开网页,但是却能打开谷歌的收索页面,只是不能点进网页) 发现linux主机再用代理上网的情况下不能用wget从外网下载资源,但是却可以从内 ...

  9. openstack 中镜像状态详解 Image Statuses

    Images in Glance can be in one the following statuses: queued The image identifier has been reserved ...

  10. 学习生活必须知道的网站或者App

    转载自:https://www.douban.com/group/topic/89798480/ 学习方面: 1.网易公开课(http://v.163.com/special/test/alltest ...