洛谷P2661 信息传递 [NOIP2015] 并查集/乱搞 (待补充!
感觉我好水啊,,,做个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] 并查集/乱搞 (待补充!的更多相关文章
- 洛谷 P2661 信息传递(并查集 & 最小环)
嗯... 题目链接:https://www.luogu.org/problemnew/show/P2661 这道题和一些比较水的并查集不太一样,这道题的思路就是用并查集来求最小环... 首先,如果我们 ...
- 洛谷 P2661 信息传递 Label:并查集||强联通分量
题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...
- 洛谷P2661 信息传递【并查集】
题目:https://www.luogu.org/problemnew/show/P2661 题意: 有一个有向图,问最小环的的大小. 思路: 明明是图的遍历,但是bfs会T.第二组下下来的数据n居然 ...
- 洛谷P2661 信息传递(最小环,并查集)
洛谷P2661 信息传递 最小环求解采用并查集求最小环. 只适用于本题的情况.对于新加可以使得两个子树合并的边,总有其中一点为其中一棵子树的根. 复杂度 \(O(n)\) . #include< ...
- 洛谷P2661 信息传递==coedevs4511 信息传递 NOIP2015 day1 T2
P2661 信息传递 题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知 ...
- 洛谷P2661 信息传递——并查集
给一手链接 https://www.luogu.com.cn/problem/P2661 这道题就是 并查集求最小环 TIPS:压缩路径的时候d[x]=d[fa[x]]+d[x],而不是d[x]=d[ ...
- 洛谷 P2661 信息传递 题解
P2661 信息传递 题目描述 有 \(n\) 个同学(编号为 \(1\) 到 \(n\) )正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为 \(i\) 的同学的信息传 ...
- [NOIP2015] 提高组 洛谷P2661 信息传递
题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...
- NOIP2015提高组T2 洛谷P2661 信息传递
题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...
随机推荐
- BurpStuite使用技巧
技巧1:抓包,设置断点修改Response 1.抓包,右键点击--Do intercept--Response to this request 2.点击Forward--修改返回包,然后放行. 技巧二 ...
- Waf-Bypass-Learning
WAF Bypass 综合篇: WAF攻防研究之四个层次Bypass WAF Bypass WAF Cookbook - MayIKissYou My Waf Bypass Series Articl ...
- EventHandler中如何提升用户权限(模拟管理员权限)
不论是在工作流或是EventHandler中,我们经常希望模拟管理员权限,从而可以通过程序自定义列表项的权限. 在工作流中可以用如下代码来提升权限:(以下代码实现的功能是断开列表项所继承的权限,除管理 ...
- Nginx SSL配置
一.SSL 原理 ① 客户端( 浏览器 )发送一个 https 请求给服务器② 服务器要有一套证书,其实就是公钥和私钥,这套证书可以自己生成,也可以向组织申请,服务器会把公钥传输给客户端③ 客户端收到 ...
- Splash plugins_enabled 属性
plugins_enabled属性可以控制浏览器插件(如 Flash 插件)是否开启.默认情况下,此属性是 false ,表示不开启. function main(splash, args) spla ...
- WF的初步学习与创建
一直在好奇WF的学习,嘿嘿,今天就不用啦,我之后就要接触WF的项目,刚开始在百度上寻找WF新建一个项目的过程,发现很少这样的实例让我学习操作,我想给我一个大的项目我也不可能一下就知道应该怎样去操作,由 ...
- IOS 第三方支付的使用:支付宝
本文转载至 http://blog.csdn.net/u014011807/article/details/47726799 总结一下支付宝iOS使用步骤: 1 第三方支付:支付宝 使用过程: 1. ...
- codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)
题目链接:http://www.codeforces.com/problemset/problem/281/A题意:将一个英文字母的首字母变成大写,然后输出.C++代码: #include <c ...
- Delphi Code Editor 之 几个特性
Delphi Code Editor有几个特性在编写大规模代码时非常有用.下面分别进行介绍: 1.Code Templates(代码模板) 使用代码模板可把任意预定义代码(或正文)插入到单元文件中.当 ...
- spring基础---->spring自定义初始化(一)
这里我们简单的实现一下spring中的初始化bean,以大概了解他的流程.受委屈几乎是一个人成长最快的途径,吃下去的是委屈,消化掉后得到的是格局. spring的自定义初始化 测试的项目结构如下: 一 ...