首页 > 其他分享 >洛谷9150题解

洛谷9150题解

时间:2023-03-31 09:35:00浏览次数:31  
标签:连通 洛谷 9150 个点 题解 S1 考虑 节点 环上

考虑把\(i\to k_i\)连边,这样形成若干个环。考虑断环为链并且把链复制一份接到后面。
考虑求出从一个点集开始拓展能够到达的点集\(S1_i\)。显然\(S1_i\)在环上是连续的,设\(r_i\)表示第\(i\)个节点拓展能得到的右端点。
考虑每个节点\(i\)所在强连通分量的点集合\(S2\)。可以证明\(S2\)在环上也是连续的。
显然如果一个节点\(x\)能够到达\(y\),则\(x\)的\(S1\)包含\(y\)的\(S1\)。
于是可以考虑如下过程:考虑如果我们求出了环上第\(i\to 2*n\)个节点的\(S1\),如何求出环上的第\(i-1\)个节点的\(S1\)集合。
显然环上第\(i-1\)个节点要和第\(i\)个节点有连边第\(i-1\)个节点才能拓展到第\(i\)个节点,此时可以把第\(i-1\)个节点的\(r\)设置为第\(i\)个节点的\(r\)。
考虑用并查集维护一个节点所在的强连通分量,并且根节点设置为强连通分量在链上最右能够到达的点。
如果把第\(i-1\)个节点并入第\(i\)个节点的\(S1\),考虑\(S1\)向\(i-1\)的所有连边的边集\(E\)(不需要考虑\(S1\)内部的连边,因为以前已经合并过了,也不用考虑 从\(i-1\)到\(S1\)的边集,因为现在\(i-1\)到\(S1\)就是可达的了,也不需要考虑外面的边集),对于所有\(E\)上的边,假设从环上的第\(x\)个点连到了第\(y\)个点,我们需要把环上的\(x...y\)合并成同一强连通分量。用并查集维护。
考虑我们合并完后,可能当前点和环上第\(r_i+1\)个点也要合并,考虑可以合并的充要条件:考虑能够到达第\(r_i+1\)个点的边集合\(S\),第\(r_i\)个点能够到达\(S\),可以判定\(S\)中的每个节点是否和\(r_i\)处在同一强连通分量中。
考虑合并,我们事实上考虑\(r_i+1\)的\(S1\)向\(i\)的\(S1\)的所有连边的边集\(E\),对于所有\(E\)上的边,假设从环上的第\(x\)个点连到了第\(y\)个点,我们需要把环上的\(x...y\)合并成同一强连通分量。用并查集维护。
找边可以用链表和类似启发式合并的思想维护。

标签:连通,洛谷,9150,个点,题解,S1,考虑,节点,环上
From: https://www.cnblogs.com/celerity/p/17275186.html

相关文章

  • 省选欢乐赛 题解
    昨天沈老师神仙场整不会了。然后今天经典老题。不是很懂为什么三道题题目名称都是Delov。卷王发现如果答案为第\(t\)秒,那么这个序列一定是一个\(1\)、两个连续的\(1\)、三个连续的\(1\)……一直到\(t\)个连续的\(1\)(中间可能有没有的项,即不操作)异或起来。那随便跑个状......
  • php 浮点数转int精度丢失问题解决办法
    方案一:先将浮点金额strval后再转int。(推荐)$param['order_price']=intval(strval($param['order_price']*100)); 方案二: echoround(19.99*100); 这种方案出来是......
  • P4156 [WC2016]论战捆竹竿 题解
    题目链接题意描述给定一个字符串\(S\),你初始拥有一个空串\(T\),每次可以选择这个字符串的一个Border,去掉它后接在\(T\)的后面,操作后\(S\)不变,给出一个上限\(w\),求......
  • CF1295E Permutation Separation 题解 线段树优化dp
    题目链接:https://codeforces.com/problemset/problem/1295/E题目大意:将排列\(p_1,p_2,\ldots,p_n\)先分成\(p_1,\ldots,p_k\)与\(p_{k+1},\ldots,p_n\)两个......
  • 【题解】[HEOI2013]SAO
    题目分析:考虑这是一个树形图,所以就先直接当作树来做。这个题其实就是让我们求解有多少种拓扑序而且题目中边方向的限制其实就是在限制拓扑序的前后,而一般这种题在设计\(......
  • 【题解】Codeforces Round 861(CF1808)A - E1
    我忘记了今天有阳间CF,所以就开打的很晚,所以只是说一下做法,代码实现....还是算了吧。但是我也看了,我的思路其他的人都有写,所以这个做法正确性没问题。A.LuckyNumbers题......
  • CF1009F 题解
    一、题目描述:给定一棵以 1 为根,n 个节点的树。设 d(u,x) 为 u的子树中到 u 距离为 x 的节点数。对于每个点,求一个最小的 k,使得 d(u,k) 最大。 二、......
  • CentOS7中远程连接数据库连不上的问题解决方法
      当远程连接数据库连接不起来时:可能原因:1.检查网络防火墙或其他安全设置是否阻止了连接  2.mysql服务是否启动,查看systemctlstatusmysql3.是否提前授权:......
  • ABC291题解(D-G)
    ABC291D-FlipCardsSolution:考虑DP,定义状态\(F_{i,0}\)为第\(i\)张卡片正面朝上的方案数,\(F_{i,1}\)为第\(i\)张卡片背面朝上的方案数,每次check是否相同然后转移即可......
  • 使用SQLALCHEMY 出现warning的问题解决
    运行程序时出现错误:UserWarning:NeitherSQLALCHEMY_DATABASE_URInorSQLALCHEMY_BINDSisset.DefaultingSQLALCHEMY_DATABASE_URIto"sqlite:///:memory:".'Neithe......