题意

传送门

交互题,给定一个简单连通图,你可以询问一个点集 \(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 题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

  10. JSOI2016R3 瞎BB题解

    题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...

随机推荐

  1. vue 复制功能

    实现: let message = ` ${name} 电话:${item.phone} 部门:${item.department} 职务: ${item.post} 邮箱:${item.email} ...

  2. JS学习-Web Workers API接口

    Web Workers API接口 通过使用Web Workers,Web应用程序可以在独立于主线程的后台线程中,运行一个脚本操作.这样做的好处是可以在独立线程中执行费时的处理任务,从而允许主线程(通 ...

  3. VUE学习-条件渲染

    条件渲染 v-if & v-else-if & v-else <div id="app"> <h1 v-if="type == 'VUE ...

  4. Windows Service调试方法小结

    方法1:log记录 这是一个通用的调试方法,效率比较低,但比较实用,通过查看日志,总能达到调试的目的 方法2:附加到进程 这是Windows Service程序调试的常用方法,缺点是对Windows环 ...

  5. 前端常见的Vue面试题目汇总

    请说一下响应式数据的原理 默认Vue在初始化数据时,会给data中的属性使用Object.defineProperty重新定义所有属性,当页面到对应属性时,会进行依赖收集(收集当前组件中的watche ...

  6. ElasticSearch (Es) 分组查询 记录

    首先表对应的实体类型: public class bm_info{ /// <summary> /// 单位 /// </summary> public  string sou ...

  7. 服务器consul与本地服务健康检查不通问题解决

    (125条消息) 服务器consul与本地服务健康检查不通问题解决_向往鸟的博客-CSDN博客_consul健康检查失败 .MathJax, .MathJax_Message, .MathJax_Pr ...

  8. Win10官方1909版本无法打开windows安全中心中病毒和威胁防护的实时保护解决方案。

    进入手痒难耐,将电脑操作系统重新安装了win10 专业工作站版 1909版,但是装完软件激活后,发现windows安全中心的"病毒和威胁防护"中的所有项目都是关闭的,试着重新安装也 ...

  9. C#开发上位机常用

    从深圳回内地几年了,突然想把之前项目中用到的东西做信合集,别忘记了!!!

  10. 2023-03-01 react-native 实现 复制功能 @react-native-community/clipboard 报错:TypeError: null is not an object (evaluating 'NativeClipboard_1.default.setString')。

    我的react-native(下称rn)版本为0.68,要实现这个功能主要用到rn的clipboard,在21年的时候他就已经提示clipboard会在未来的版本中上去掉,官方的建议是不要再从reac ...