自闭集训 Day7

分治

主定理

由于我沉迷调题,这个地方没听课。

某些不等式

咕了

nth_element

使用快速排序的思想,选一个中间点,看左右有多少个。

期望复杂度\(O(n)\)。

首先把一个序列分成5份,每份大小\(n/5\),叠成一个矩阵,对每一列进行排序。

现在中间一行就是每一列的中位数,递归下去求它的中位数。

然后把中位数比他小的列放左边,比他大的放右边。

于是我们知道至少\(0.3n\)比他小/比他大,也就是至多\(0.7n\)比他小/比他大。

于是我们找到了一个比较好的轴点,用上面的方法分治下去。

然后就\(T(n)=T(0.2n)+T(0.7n)+O(n)=O(n)\)。

但这个算法常数巨大……

CF958E3

首先有结论:任意\(2n\)个点都存在合法方案。

为什么?考虑某个不合法方案的交叉,可以把边扭一下,于是总长度会变小。又因为总长度不可能无限减小,于是就有了。

然后怎么求答案呢?

咕了

CF429D

明眼人一眼就看出这是个距离的形式,然后就变成平面最近点对了……

我可能就是瞎……

CF938G

裸线段树分治+并查集+线性基。

某题

点数减边数裸题。

显然对于一个点集,满足条件的点\(u\)构成一个连通快(即一棵树),又因为树的点数减边数为1,所以直接统计即可。

CF1010F

怎么就讲过了啊/kk

令\(b_i=w_i-\sum_v w_v\),于是条件等价于\(b_i\ge 0​\)。

对于一个合法连通块,\(\sum b_i=X\)。

于是就可以开始对\(b_i\)计数了。

于是只要定下了连通块大小为\(m\),方案数就是\({X+m-1\choose m-1}\)。

于是就转化为原来的一道题了,就做完了。

某题

支持动态加有向边、查询相互可达的\((u,v)\)个数。

我们发现动态维护强连通分量似乎非常不可做,所以可以对于每一条边\((u,v)\),判断\(u,v\)什么时候会在同一个强连通分量里面。

显然这个东西满足单调性,但数据范围不允许我们挨个二分,所以我们使用整体二分。

定义函数\(solve(l,r,ql,qr)\)表示已知\([ql,qr]\)里面的边的时间都在\([l,r]\)里面,现在要求出每条边的时间。

二分一个\(mid=(l+r)/2\),然后把\([1,mid]\)里面的边都加进图里跑tarjan,这是最暴力的方法,显然过不了。但是我们注意到只要在递归\([l,mid]\)之后不把边清空,就可以只加\([l,mid]\)的边,然后用并查集缩一下点,复杂度就对了。

某题

做过,但咕了!

考虑把起点从上到下走,维护最短路树,那么可以感受到树上的父亲一定是从上变成左,再变成下,最多变两次。

然后如果一条边在\([l,r]\)没有变,那么可以缩起来。

于是就整体二分然后???

离线求逆元

求一个前缀积,然后大家都会。

树上并查集

树上分块+四毛子。

(四毛子似乎是一个叫做四个俄罗斯人的算法?)

然后就做到线性了??

咕了

Trajan LCA

离线lca,用树上并查集可以优化至\(O(n)\)?

转载于:https://www.cnblogs.com/p-b-p-b/p/11305283.html

2019暑期金华集训 Day7 分治相关推荐

  1. 「2019纪中集训Day7」解题报告

    T1.小L的数列 给一个数列 \(\{f_i\}\): \[ f_i = \prod_{j = 1}^{j \leq k} f_{i - j}^{b_j}, \ (i > k) \] 现在给定数 ...

  2. 2019暑期个人排位集训补题--思维题

    2019暑期集训思维相关补题集 CodeForces - 768B Code For 1 Gym - 100066B CodeForces - 768B Code For 1 Jon fought b ...

  3. 递推(2019暑期集训第一次校赛-H.统计ccsu)

    2019暑期集训第一次校赛-H.统计ccsu 链接:https://ac.nowcoder.com/acm/contest/1068/H 来源:牛客网 题目描述 给一个长度不超过1e5的字符串s,字符 ...

  4. $2019$ 暑期刷题记录 $2$(基本算法专题)

    $ 2019 $ 暑期刷题记录 $ 2 $ (基本算法专题) $ by~~wch $ $ BZOJ~1958~Strange~Towers~of~Hanoi $ (动态规划,递推) 题目大意: 求有 ...

  5. 【集训日志】 金华集训

    //待更新 前言 ε=(´ο`*)))唉,这次集训,我本来是,没有多大兴趣参加的..毕竟我认为暑假已经足够忙了(也许吧),放假天数本来也就十出头,在集训还不是??不过,在仔细思考自己的实力之后我发现自 ...

  6. 【继续水】暑期OI集训感想

    反正今天宜写作文,都已经肝了好几篇了,那就再肝一篇吧... 紫薯布丁紫薯布丁紫薯布丁紫薯布丁紫薯布丁紫薯布丁紫薯布丁紫薯布丁紫薯布丁紫薯布丁紫薯布丁紫薯布丁紫薯布丁紫薯布丁紫薯布丁紫薯布丁紫薯布丁紫薯 ...

  7. Loj #6077. 「2017 山东一轮集训 Day7」逆序对

    Loj #6077. 「2017 山东一轮集训 Day7」逆序对 Solution 令fi,jf_{i,j}fi,j​表示前iii个数产生jjj个逆序对的方案数,每次考虑把i+1i+1i+1加入,有i ...

  8. 容斥问卷调查反馈——Co-prime,Character Encoding,Tree and Constraints,「2017 山东一轮集训 Day7」逆序对

    文章目录 Co-prime source solution code Character Encoding source solution code Tree and Constraints sour ...

  9. 京东2019暑期实习面经

    京东2019暑期实习面经Java开发岗 概述 面试开始是自我介绍,按照了看过的博客的经验简单说了一下,然后就开始让你介绍项目经验,这样按照经验介绍,之后就问了一些技术性的问题.以下是对一些问题的总结: ...

  10. 中南大学计算机学院盛羽,中南大学、新疆大学ACM暑期联合集训营顺利开营

    本网讯 7月21日上午,中南大学.新疆大学ACM暑期联合集训营在校本部科技楼实验室顺利开营.由新疆大学软件学院副院长王新辉作为领队的15名新大师生与中南大学ACM集训队学生共同参加了开营仪式,计算机学 ...

最新文章

  1. 【iOS】中间透明的引导蒙层
  2. A. Many Equal Substrings(自己很水)
  3. 多个虚拟主机服务器,Windows多个虚拟主机服务器
  4. 【软件开发】制作个人移动式Git服务器
  5. Apollo进阶课程㉚丨Apollo ROS背景介绍
  6. Python ——模块
  7. 产品经理必修30本书
  8. 用 TypeScript 写一个轻量级的 UI 框架之八:表单控件之富文本编辑器
  9. andriod安装linux系统
  10. Linux系统CentOS 7中安装配置JDK
  11. v-else-if使用方法
  12. 记一个docker网络问题--network=host
  13. 2. 确定地球与金星之间的距离 天文学家在1914年8月份的7次观测中,测得地球与金星之间距离(单位:米),并取其常用对数值,与日期的一组历史数据如下表:
  14. GPS坐标对应地图坐标偏移问题
  15. 拆掉思维里的墙--书摘+个人理解
  16. Ubuntu使用Gstreamer gi包不存在解决
  17. 大学计算机基础教程第10章数据通信技术基础
  18. Android 双击退出和单击回到桌面
  19. 分布式下如何实现统一日志系统?
  20. 酉变换 matlab,数字图像处理:原理与实践(MATLAB版)

热门文章

  1. 微博发布头条文章失去文本样式以及图片
  2. 51单片机与AVR单片机
  3. vmware(鼠标移出移入)反复触发numlock问题
  4. 笔记本电脑没有Pause键,远程桌面无法全屏
  5. LED背光源的技术术语
  6. 注意:QQ空间加密并不安全
  7. 基于node连接广工大服务器获取信息
  8. 结构为王——确定分析思路(数据分析方法论)
  9. JAVA实现UTC时间转换成北京时间
  10. windows10电脑连接小爱音箱(完美解决连接上无声音)