首页 > 其他分享 >CF1033E 题解

CF1033E 题解

时间:2023-01-29 14:15:15浏览次数:57  
标签:二分 CF1033E 题解 所有 有连边 深度 ask

题意

传送门

交互题,给定一个简单连通图,你可以询问一个点集 \(s\),返回其导出子图的边数。判断此图是否为二分图:若是,输出其中一部点的集合;否则输出任一个奇环。最多询问 \(20000\) 次。

\(1 \le n \le 600\)。

题解

对原图建立生成树,判断深度奇偶性相同的点是否有连边。

但建树的复杂度已经是 \(O(n^2)\),且难以优化。注意到条件仅对深度有要求,那么尝试忽略树的形态,仅找出所有点的深度。

可以得出这样一个算法:先找到深度为 \(0\) 的点集(即 \(\{1\}\)),然后找出所有与其有连边的点,即为深度为 \(2\) 的点集。依次类推。

考虑一下 “找出 \(S\) 中与 \(T\) 有连边的所有点“ 的复杂度。显然有一个 \(O(|S|)\) 的做法,但不够。我们需要其与答案个数有关,便于均摊。那么考虑分治。判断 \(S\) 与 \(T\) 是否有连边,可以通过 \(ask(S\cup T)-ask(S)-ask(T)\)。

那么就通过 \(O(n\log n)\) 得出了所有点的深度。于是可以判断二分图。还有一个问题是,若不是二分图,怎么找到奇环?

不妨设 \(S\) 为所有偶深度点的集合,且 \(ask(S)>0\)。那么通过枚举所有 \(x\in S\),可以找出一个与 \(S\setminus\{x\}\) 有连边的点。再枚举一遍,就找到一条边 \((x,y)\)。那么再找到它们到根的路径上的所有点即可,也就是找父亲。这显然可以通过二分。于是此题得解。

标签:二分,CF1033E,题解,所有,有连边,深度,ask
From: https://www.cnblogs.com/FishJokes/p/17072517.html

相关文章

  • Good Bye 2022 简要题解
    从这里开始比赛目录过气选手留下了只会套路的眼泪。sad......ProblemA KoxiaandWhiteboards相信大家都会.jpgCode#include<bits/stdc++.h>using......
  • 题解:【CF226D】The table
    题目链接调整构造。发现\(n\)和\(m\)较小只有\(100\),因此可以考虑尝试进行修改从而不断逼近答案。容易发现如果将某一行或列上的数字翻转,那么得到的新的和一定与原......
  • 【题解】ABC287
    \(\text{AtCoderBeginnerContest287}\)AMajority无意义题,问同意的是不是占半数以上。BPostalCard无意义题,对一个字符串集合开桶,对应匹配另一个字符串集合。CPa......
  • P3070 [USACO13JAN]Island Travels G 题解
    题目传送门一道耗费了本蒟蒻与某机房卷王半天的恶心题题目描述给定一个图,求每个X连通块之间的最短Hamilton路径。假如您不知道Hamilton路径是什么分析这题本质......
  • 【题解】P4491 [HAOI2018]染色
    思路NTT优化二项式反演。首先考虑到求“正好有\(k\)种颜色出现\(S\)次”的方案数,所以可以考虑转化成求“至少有\(k\)种颜色出现\(S\)次”的方案数。形式化......
  • ABC 287 (E-Ex) 题解
    E我的做法对于每个串枚举他的答案,然后直接hash硬干就完了。卡一卡就过去了#include<bits/stdc++.h>usingnamespacestd;typedefunsignedlonglongull;const......
  • setting.xml的mirror、mirrorOf和pom.xml的repositories、repository的关系关联snapsh
    setting.xml的mirror、mirrorOf和pom.xml的repositories、repository的关系关联snapshots带有时间错问题解决方案nexus3.8私有仓库https://blog.csdn.net/Michaelwubo/a......
  • [CF380C] Sereja and Brackets 题解
    [CF380C]SerejaandBrackets题解给定一个括号串\(s\)与\(m\)次询问。l,r回答字符串\(t=s_ls_{l+1}\dotss_r\)​的所有子序列中最长的合法括号串的长度。......
  • 【题解】[ABC286C] Rotate and Palindrome 题解
    更好的阅读体验洛谷题目传送门|AT原题传送门思路观察题目可以发现A操作最多只能执行\(n\)次,超过以后字符串又会回到初始状态。首先考虑A操作如何实现,一种办法......
  • 【题解】[IOI2018] werewolf 狼人
    题目分析这个题本身很简单,可能就是因为是IOI题所以看上去就难了些吧。其实题目就是让我们先走一段全部大于等于\(l\)的点然后再走一段全部小于等于\(r\)的点,那么能......