NOIP2015信息传递
2017-07-11 10:00
190 查看
可以去Luogu上看着道题
先看一下一下样例:Sample Input: 5 2 4 2 3 1
Sample Output: 3
可以认为是这样的
1->2 2->4 3->2 4->3 5->1
然后我们发现若抽象成图。
图中有一个环
(2->4->3->2),大小正好是3。
可以推知:环内的人必定在环的大小单位时间后得到自己的信息。
所以直接找最小环
But, n<=2∗105
一个个人找环时间复杂度最大为O(n2)
我们发现:
找一个环,还上每个人都会遍历到。
所以可以并查集排除重复的或记下经过的人。
参考代码:
int n,ans=0x3f3f3f3f,g[200010],f[200010]; int getf(int x) { rt f[x]=(x==f[x]?x:getf(f[x])); } int main(){ n=read(); fr(i,1,n) g[i]=read(); fr(i,1,n) f[i]=i; fr(i,1,n) f[i]=getf(g[i]); fr(i,1,n) if(i==____) { int k=g[i],t=1; while(k!=i) { k=g[k]; t++; } ans=__________; } printf("%d\n",ans); rt 0; }
送大家两个空去填
相关文章推荐
- NOIP 2015 提高组 Day1 信息传递
- JZOJsenior4324.【NOIP2015提高组Day1】信息传递
- NOIP2015提高组day1 —— 信息传递(message)
- 【noip 2015】信息传递
- 【题解】NOIP 2015 信息传递(tarjan 强连通分量)
- [NOIP2015] 提高组 洛谷P2661 信息传递
- 【NOIP 2015 Day1 T2】信息传递(dfs || 拓扑排序 || Tarjan)
- NOIP 2015 Senior 2 - 信息传递
- 【NOIP2015】信息传递 dfs
- UOJ 146 【NOIP2015】信息传递
- codevs 4511 信息传递 NOIP2015 day1 T2
- 【NOIP2015】洛谷2661 信息传递
- [NOIP2015] 信息传递
- [noip2015] 信息传递
- NOIP 2015 D1 T2 信息传递
- 【NOIP2015】信息传递
- Cpp环境【NOIP2015 D1P2】【Viijos1979】【Code[VS] 4511】【CQYZOS3198】 信息传递
- 【NOIP2015】信息传递 CODE[VS] 4511
- 【NOIP2015】洛谷P2661 信息传递(tarjan)
- 2015 NOIP day2 t2 信息传递 tarjan