学习手记(2019/7/05~2019/8/31)——快乐暑假
文章目录
- 二分答案的作用
- 堆和区间
- 很糙ddp
- 线段树合并
- 网络流结论の1
- 树上莫队
- 对角线与GCD
- 区间与扫描线与方案数
- 欧拉欧拉*1
- 斯坦纳树
- 切比雪夫距离
- 二分匹配结论の1
- min-max容斥
- 计算几何の -1
二分答案的作用
- 求最大值最小ororor最小值最大
- 将求值问题转换为判断问题
- 在判断问题之间相互转换
堆和区间
当查询前kkk个最值区间时可以将开始时先将区间丢入堆中,每次取出堆顶然后将区间按照答案分裂成两个存入堆中
[NOI2010]超级钢琴【RMQ,堆】
[十二省联考2019]异或粽子【可持久化Trie,堆】
很糙ddp
将权值改为矩阵,然后将运算改成广义矩阵乘法
然后用区间数据结构维护即可
[模板]动态DP【矩阵乘法,树链剖分,线段树】
保卫王国【动态dp,最小覆盖集】
迷宫【ddp,线段树,矩阵乘法】
线段树合并
首先是必要的动态开点,然后合并时从需要合并的两颗线段树的根出发
- 若两边都有左节点那就递归左节点(右节点同理)
- 若只有一边有左节点那就让合并后的树直接连接向左节点(右节点依旧同理)
时间复杂度:O(nlogn):O(n\log n):O(nlogn)
时间复杂度证明(很糙):
我们不难发现合并的最大复杂度是最小的那颗子树的大小,那么因为只有nnn次插入那么一棵树最多nlognn\log nnlogn个节点,但是因为是最小的那颗子树大小,所以不可能每颗子树都是nlognn\ log nn logn个节点,所以对于每个节点最多被作为最小的子树合并logn\log nlogn次。
证毕
([NOI2013模拟]法法塔的奖励【权值线段树,线段树合并】)[https://blog.csdn.net/Mr_wuyongcong/article/details/95209896]
网络流结论の1
结论:最小割中对于一条边(x,y)(x,y)(x,y)在残量网络中sss可以到达xxx不能到达ttt且yyy可以到达ttt不能到达xxx那么这条边是必割边
证明:
在残量网络上sss可以到达xxx且yyy可以到达ttt那么说明若该边不割那么sss就可以通过该边到达ttt。假设在sss到xxx的路上有同样长度的一条道路且割掉后可以使sss到达xxx那么在残量网络上该边的流量必定为0,因为切割掉x−>yx−>yx−>y的流量也必定会经过该边所以在残量网络上sss就不可以到达xxx了。所以该假设不成立。
证毕
秘密任务【最短路,网络流最小割】
树上莫队
维护一个欧拉序,然后在欧拉序上进行莫队即可。
[NOI2013模拟]苹果树【树上莫队,LCA】
对角线与GCD
n∗mn*mn∗m的矩阵对角线会穿过n+m−(n,m)n+m-(n,m)n+m−(n,m)个格子
证明:
对于若(n,m)==1(n,m)==1(n,m)==1(互质)则会经过n+m−1n+m-1n+m−1个格子,所以我们可以将n∗mn*mn∗m拆分成gcd(n,m)gcd(n,m)gcd(n,m)个n/gcd(n,m)∗m/gcd(n,m)n/gcd(n,m)*m/gcd(n,m)n/gcd(n,m)∗m/gcd(n,m)的格子于是我们发现答案就是(n/gcd(n,m)+m/gcd(n,m)−1)∗gcd(n,m)(n/gcd(n,m)+m/gcd(n,m)-1)*gcd(n,m)(n/gcd(n,m)+m/gcd(n,m)−1)∗gcd(n,m)
也就是n+m−gcd(n,m)n+m-gcd(n,m)n+m−gcd(n,m)
证毕
蛋糕切割【数论,GCD】
区间与扫描线与方案数
对于x,yx,yx,y,给出若干个限制如下:
若x∈[Lxi,Rxi]x\in [Lx_i,Rx_i]x∈[Lxi,Rxi]时要求y∉[Lyi,Ryi]y\notin [Ly_i,Ry_i]y∈/[Lyi,Ryi]
那么我们可以建立一个(Lxi,Lyi,Rxi,Ryi)(Lx_i,Ly_i,Rx_i,Ry_i)(Lxi,Lyi,Rxi,Ryi)的矩阵然后扫描线求矩阵的总覆盖面积即可。
[Noip提高组模拟1]树【线段树,扫描线,倍增】
欧拉欧拉*1
φ(m!)=m!∏i=1kpi−1pi\varphi(m!)=m!\prod_{i=1}^k \frac{p_i-1}{p_i}φ(m!)=m!i=1∏kpipi−1
[SDOI2008]沙拉公主的困惑【线性筛,欧拉函数,逆元】
斯坦纳树
一张图,求一个最小权的生成树要求包含指定的点。
用状态压缩dpdpdp后用SPFASPFASPFA转移(因为有后效性)
挖宝藏(treasure)【斯坦纳树,SPFA,状压】
切比雪夫距离
定义:
disi,j=max{∣xi−xj∣,∣yi−yj∣}dis_{i,j}=max\{|x_i-x_j|,|y_i-y_j|\}disi,j=max{∣xi−xj∣,∣yi−yj∣}
用法:
- 将曼哈顿距离转换为切比雪夫距离,让(x,y)(x,y)(x,y)变为(x+y,x−y)(x+y,x-y)(x+y,x−y)。与一个点距离≤D\leq D≤D的点就变为了在改点为中心的2∗D2*D2∗D长的正方形内。
- 将切比雪夫距离转换为曼哈顿距离,让(x,y)(x,y)(x,y)变为(x+y2,x−y2)(\frac{x+y}{2},\frac{x-y}{2})(2x+y,2x−y)。然后就可以使用二维前缀和进行计算。
世界第一的猛汉王【切比雪夫距离,扫描线】
二分匹配结论の1
每个极大匹配都是完全匹配的充要条件是在完全匹配中每个联通块两边点数相同且都是满二分图。
证明
证毕
min-max容斥
max{S}=∑T∈Smin{T}∗(−1)∣T∣−1max\{S\}=\sum_{T\in S} min\{T\}*(-1)^{|T|-1}max{S}=T∈S∑min{T}∗(−1)∣T∣−1
计算几何の -1
对于一个这样的三角形
BCBCBC和CACACA中有一条斜率比ABABAB小,一条比ABABAB大
学习手记(2019/7/05~2019/8/31)——快乐暑假相关推荐
- 学习手记(2018.11.30~2019.6.6)——养老时间
文章目录 φ\varphiφ的奥秘之1 某不科学的知识 二维费用 自然の对数大法 斐波那契数列与三角形 BSTBSTBST大法好 点阵迷踪 CayleyCayleyCayley公式 质嘤数分解の1 费 ...
- 学习手记(2018/7/14~2018/7/18)——快乐纪中
2018/7/14:普通的纪中一天 儿子兄弟表示法 将一颗多叉树转换为二叉树的方法,左子节点连原树的第一个儿子,右子节点连原树的右边的兄弟 适用范围:树形dp 数位dp常见方法 状态压缩 分类讨论 记 ...
- 【2019年05月20日】A股滚动市盈率PE历史新低排名
2010年01月01日 到 2019年05月20日 之间,滚动市盈率历史新低排名. 上市三年以上的公司, 2019年05月20日市盈率在300以下的公司. 1 - 阳光照明(SH600261) - 历 ...
- 做个爱学习的孩子!收藏2019知名机器学习暑期学校大列表
机器之心报道,参与:李亚洲. 2018 年,机器之心为大家介绍了大量的教程.课程等学习资源.新的一年已经到来,小编在此文章中为热爱学习的读者们推荐 2019 年暑期课程列表,收藏了吧! Github ...
- 大话西游2服务器维护公告,大话西游2经典版:2019年05月09日停机维护公告
原标题:大话西游2经典版:2019年05月09日停机维护公告 亲爱的玩家: 为了保证服务器的稳定和服务质量,<大话西游2经典版>将于2019年05月09日(本周四)早上8:00停机,进行每 ...
- Ubuntu18开机速度突然变慢问题的解决(2019.11.05)
Ubuntu18开机速度突然变慢问题的解决(2019.11.05) 1 前言(伏笔) 2 分析一:可能是由于一些开机启动程序导致的 3 分析二:从启动日志查找原因 参考 1 前言(伏笔) 笔者的笔记本 ...
- linux 开机速度 固态,Ubuntu18开机速度突然变慢问题的解决(2019.11.05)
Ubuntu18开机速度突然变慢问题的解决(2019.11.05) 1 前言(伏笔) 2 分析一:可能是由于一些开机启动程序导致的 3 分析二:从启动日志查找原因 参考 1 前言(伏笔) 笔者的笔记本 ...
- AM335X的汇编语言与c语言,X86汇编语言学习手记 -- 汇编和C协同
X86汇编语言学习手记(3) 2004年12月 在X86汇编语言学习手记(1)(2)中,可以看到栈(Stack)作为进程执行过程中数据的临时存储区域,通常包含如下几类数据: 局部变量 函数调用的返回地 ...
- R语言学习手记 (1)
R语言学习手记 (1) 经管的会计和财管都会学数据统计与分析R语言这门课,加上我也有点兴趣,就提前选了这门课,以下的笔记由老师上课的PPT.<R语言编程艺术>和<R语言数据科学> ...
最新文章
- npm全局环境变量配置,全局配置cnpm
- 2020中国高校薪资排行出炉!好过双一流的高校原来这么多!
- 基于Hyper-V3.0搭建XenDesktop7之九 部署虚拟应用之模板准备
- android listview 数据同步,android中ListView数据刷新时的同步方法
- OOP 中的 方法调用、接口、鸭式辩型、访问者模式
- 虚拟机Linux和宿主机传输文件
- 1)关于配置centos的网络问题
- 【通俗解释】P_value 假设检验
- 微信分享按钮隐藏、显示问题和注意事项
- c++的复制省略(copy elision)
- 虚地址到实地址的翻译过程
- ffmpeg-nvenc
- UEStudio/UltraEdit 的语法高亮文件 (*.uew)
- bs架构用php编写,BS架构(bs架构开发用什么语言)
- python怎么处理通达信ctp接口数据?
- SQL Server性能监视
- 使用pcb-tools解码Gerber文件报错IndexError: list index out of range
- ubuntu14.04快捷键控制笔记本触摸板的开启与关闭
- 小米 MIX 2S 解BL锁教程 申请BootLoader解锁教程
- processing创意图形代码_代码之上,诗意之中 | Processing编程造个梦
热门文章
- linux开机自动挂载硬盘指定权限,Linux开机自动挂载硬盘
- linux级别3怎么配置DNS,Linux下DNS服务器配置详解
- jdk解压版_命令行版的斗地主你玩过没?
- leetcode337. 打家劫舍 III
- android 那几种动画,Android 动画实现几种方案
- [C++11]对模板右尖括号的优化
- AcWing 788 逆序对的数量-归并排序
- Collecting Bugs POJ - 2096(基础概率dp+期望模板)
- python3.6基础知识_python的基础知识
- Educational Codeforces Round 89 (Rated for Div. 2)(A, B, C, D)