CF1033E 题解
题意
交互题,给定一个简单连通图,你可以询问一个点集 \(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 题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
- JSOI2016R3 瞎BB题解
题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...
随机推荐
- 【面试题】 webpack面试篇
1.与webpack类似的工具还有哪些?谈谈你为什么选择webpack? grunt 优点:出现的比较早,第一代打包工具 缺点:配置项太多,只有一个配置文件,而且不同的插件可能有自己的配置字段,学习成 ...
- Github好用的镜像网站
最近Github越来越不好用了,发现一个特别好用的镜像网站,无论是进入还是下载都非常的快. https://hub.yzuu.cf/ 首页和Github没有任何区别, 注意请不要在连着梯子的时候使用, ...
- docker、Containerd ctr、crictl 区别
简述 作为接替 Docker 运行时的 Containerd 在早在 Kubernetes1.7 时就能直接与 Kubelet 集成使用,只是大部分时候我们因熟悉 Docker,在部署集群时采用了默认 ...
- 【SSO单点系列】(5):CAS4.0 之JDBC
deployerConfigContext.xml 修改对应添加以下代码 <bean id="SearchModeSearchDatabaseAuthenticationHandler ...
- 最近录了一些python视频教程
最近录了一些python视频教程,目前有机器学习的.python基础知识的,大家可以去B站观看. https://space.bilibili.com/431152063 python机器学习之KNN ...
- 题目集7-9总结性Blog
一.前言 通过对PTA的第七.八.九题目集的学习与总结,我感觉本三次题目集的题量不大,在完成范围之内.难度的话也一般,有难度,但是在解决范围之内,大多数较难的知识点可以通过自学(图书馆看书.看网课)的 ...
- Spring 的XML配置文件中提示的配置
1.看图:2.关于web.xml配置文件提示(1)下载(保存)http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd文件.(2)在eclipse中 Window ...
- VM虚拟机15安装Kali Linux2020版详细教程
下载kali镜像 kali Linux官网地址https://www.kali.org/downloads/下载相对应的电脑版本 打开Vmware虚拟机 安装虚拟机看物理机配置,尽量不要太折腾电脑(虚 ...
- 【git】git基本使用以及设置
视频讲解 一.git下载 官网:Git - Downloads (git-scm.com) 国内镜像:CNPM Binaries Mirror (npmmirror.com) 就目前而言,github ...
- 剑指 Offer II 动态规划
088. 爬楼梯的最少成本 class Solution { public: int minCostClimbingStairs(vector<int>& cost) { int ...