学习笔记--APIO 2018 二分专题 By wuvin
前言:
在APIO 2018 Day2下午听wuvin讲二分,听了一上午的神仙,现在终于有可以听懂了。
专题:
- 平均边权最大 
- 题解 by wuvin: - 二分平均值 - 然后每条边减去平均值 
 变为查找是否存在正环- 可以使用SPFA(反着写松弛) 
 
- 最大闭合权子图变式 - 题意: - 一个N个点M条边的图(不一定连通)。 - 一个子图的优美程度定义为子图中的边数/子图的点数 - 现在你需要求出最大能得到的优美程度是多少? 
- 题解by wuvin: - 照套路我们二分一下 - 然后点带负权,边带正权 - 选择边必须选择点 - 变成最大权闭合子图,上网络流解决 
 - 然而我并不会网络流求这个... 
- 带权二分系列 - BZOJ 2654 
- 题解by wuvin: - 如果我们对所有白色边的边权增加\(M*maxW\),那么最小生成树会得到一个白色边尽量少的方案。 - 如果我们对所有白色边的边权增加\(-M*maxW\),那么最小生成树会得到一个白色边尽量多的方案。 - 我们定义这个给白色边的额外权值为C。随着C从小到大遍历\([-M \times maxW,M \times maxW]\),那么我们的最优方案中的白色边会逐渐减少。 - 如果某个C下,我们最优方案刚好得到K条边,那么这就是原题的最优解。因为最终代价为 原题的最优解+\(C*K\) 其中K和C都是常数,所以说最优解和原题是同一个最优解。 - 所以我们可以二分C值,然后使用\(kruskal\)生成树即可。(假设白色边和黑色代价一样的时候选择白色边) - 但是注意一个细节,随着C的增加,白色边边数只是单调不增而已,可能出现C=1是得到5条白色边,C=1+eps是就是3条白色边,这是因为可能存在可以代替白色边的权值刚好之比白色边大1的黑色边。 - 所以二分到最后需要特判一下。 
 
- APIO 2014 
- 题解by wuvin: - Ans = C – 每一段内任意两个数的两两的乘积之和 - \(Ans=C-minimize(\sum_{i \in [li,ri]}\sum_{j \in [li,ri]} {Wi \times Wj})\) - 传统做法O(NK)的斜率DP - 我们来参数二分 —— 给每次划分附上一个额外的代价C。 - 当\(C= +∞\)时,答案是只分一段。 
 当\(C=0\)时,答案是每个数割一刀,分成n段。- 分的段数随着C的增长而减少 
 于是可以采用刚刚类似的二分方法。- 二分之后就是正常的斜率DP了。 
 最终复杂度 \(O(nlogV)\)
- 相似: - SDOI2016 征途 
 
 
学习笔记--APIO 2018 二分专题 By wuvin的更多相关文章
- 「学习笔记」wqs二分/dp凸优化
		[学习笔记]wqs二分/DP凸优化 从一个经典问题谈起: 有一个长度为 \(n\) 的序列 \(a\),要求找出恰好 \(k\) 个不相交的连续子序列,使得这 \(k\) 个序列的和最大 \(1 \l ... 
- RxJava2.0学习笔记2 2018年7月3日 周二
		摘记: 1.map -- 转换 有些服务端的接口设计,会在返回的数据外层包裹一些额外信息,这些信息对于调试很有用,但本地显示是用不到的.使用 map() 可以把外层的格式剥掉,只留下本地会用到的核心 ... 
- 算法图解学习笔记01:二分查找&大O表示法
		二分查找 二分查找又称折半查找,其输入的必须是有序的元素列表.二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止:如果x<a[ ... 
- [笔记] APIO 2018 Day1
		计算折纸 computaional origami 全息算法(???) margulis napkin problem 素数里有任意长的等差数列 xor gate Σxi or gate(exact ... 
- 【学习笔记】整体二分(BZOJ2738矩阵乘法)
		也是因为一道题才来学的... 然后就发现这道模板貌似是暑假初期在某校集训的时候的比赛题 并且好像没改= = 前置芝士 1.二分= = * CDQ分治[你要是知道CDQ分治的话这玩意就很好理解啦] *本 ... 
- RxJava2.0学习笔记1 2018年3月23日 星期五
		参考博文:给初学者的RxJava2.0教程-简书 源码 :https://github.com/ssseasonnn/RxJava2Demo 1 若是发送多个onError, 则收到第二个on ... 
- Android学习笔记_66_图片处理专题
		1.图片缩放:不解析整个图片信息. public class DemoActivity extends Activity { @Override public void onCreate(Bundle ... 
- 图灵学院JAVA互联网架构师专题学习笔记
		图灵学院JAVA互联网架构师专题学习笔记 下载链接:链接: https://pan.baidu.com/s/1xbxDzmnQudnYtMt5Ce1ONQ 密码: fbdj如果失效联系v:itit11 ... 
- wqs二分 学习笔记
		wqs二分学习笔记 wqs二分适用题目及理论分析 wqs二分可以用来解决这类题目: 给你一个强制要求,例如必须\(n\)条白边,或者划分成\(n\)段之类的,然后让你求出最大(小)值.但是需要满足图像 ... 
随机推荐
- git  commit 合并到指定分支
			1. 将指定的commit合并到当前分支 git cherry-pick commit_id 2. 合并多个连续 commit 到指定分支 假设需要合并 devlop 上从 fb407a3f 到 9 ... 
- java连接mysql出现The server time zone value '�й���ʱ��' is unrecognized or represents more than...
			在连接的配置文件中,指定数据库位置的末尾加上serverTimezone=UTC ```yml url: jdbc:mysql://localhost:3306/app?serverTimezone= ... 
- Visual Studio Code 编辑器使用
			image.png 之前一直都是用 sublime text 作为开发工具,用久了自然而然会觉得生活无趣,而且当时用sublime text 装了很多插件,有些插件不能用,于是决定试试微软的新产品 ... 
- venv转向pipenv
			先编译安装你需要的Python版本:参考https://www.cnblogs.com/zxpo/p/10011871.html python3.6安装在:/usr/bin/python3.6目录下: ... 
- ArrayList && HashMap扩容策略
			ArrayList扩容策略:默认10 扩容时是base + base/2, 即10 15 22 33 49...扩容时不安全:grow方法扩容时,赋值 elementData = Arrays.cop ... 
- [转]Cookie详解
			从事 Web 开发已有近17个月:在学以致用的工作学习里,对于不怎么使用的部分,多少有些雾里探花的窘迫感-差不多是了解一二,然而又非真切的明晰:这就使得再用的时候,总要去再搜索一番:如此颇为难受,倒不 ... 
- LC 774. Minimize Max Distance to Gas Station 【lock,hard】
			On a horizontal number line, we have gas stations at positions stations[0], stations[1], ..., statio ... 
- Leaflet - 自定义弹出框(popup)
			有两种方法,一种直接改 CSS,一种是通过继承拓展 popup. 方法一:改 CSS 下面是一个将原有样式清空的设置(可能清的不全,只是提供个思路) .l-popup { &--no-styl ... 
- 小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介
			笔记 ============================================= SpringCloud课程笔记.txt 第一章 课程介绍和学习路线 1.微服务架构SpringClou ... 
- 进程,虚拟环境,Mysql主从
			进程 查看进程 ps(类似windows任务管理器) man 1 ps # 查看命令文档 ps[options] 1 UNIX options, which may be grouped and mu ... 
