09 2021 档案

摘要:(事实上,总是可以让每一场都比,因此$w_{i}$并没有意义) 当$k=2$时,有如下做法—— 新建一个点,向所有奇度数的点连边,并对得到的图求欧拉回路,那么只需要将欧拉回路上的边交替染色,即可保证$|s_{i,1}-s_{i,2}|\le 1$(路径长度为奇数时的起点),去掉新建的点后仍有$|s_ 阅读全文
posted @ 2021-09-30 10:27 PYWBKTDA 阅读(51) 评论(0) 推荐(0) 编辑
摘要:记$d(x,y)$为$x$到$y$的距离,$cost_{x}=\sum_{i=1}^{n}w_{i}d(x,i)^{\frac{3}{2}}$为$x$的代价 取$C$为足够大量,对于一条边权为$w$的边,在边上新建$wC-1$个点,这些点点权为0(即本身无影响),并将边拆成$wC$段,那么每一段边权 阅读全文
posted @ 2021-09-30 09:59 PYWBKTDA 阅读(35) 评论(0) 推荐(0) 编辑
摘要:记$a_{i}$为当前第$i$个水箱的电流,$b_{i}$为$a_{i}$的历史最大值 不难发现,问题即要支持:对$a_{i}$区间覆盖和区间加(并对0取$\max$);查询某个$a_{i}$和$b_{i}$ 整体思路类似于bzoj3064,仍维护$\max a,b$​和操作序列,操作执行方式即令$ 阅读全文
posted @ 2021-09-29 13:48 PYWBKTDA 阅读(41) 评论(0) 推荐(0) 编辑
摘要:记$a_{i}$为时刻$i$当前cpu使用率,$b_{i}$为$a_{i}$的历史最大值 不难发现,问题即要支持:对$a_{i}$区间赋值和区间加;查询$a_{i}$和$b_{i}$的区间最大值 在线段树的节点上维护$\max a,b$和一个操作序列(类似懒标记),序列中的元素为操作(赋值或加),并 阅读全文
posted @ 2021-09-28 21:38 PYWBKTDA 阅读(42) 评论(0) 推荐(0) 编辑
摘要:整体思路类似于hdu5306,在线段树上维护区间内最大值及个数、严格次大值、最小值及个数、严格次小值和区间和,即可支持$o(\log n)$查询 修改时,区间加直接维护即可,区间取$\min$的做法与该题相同—— 修改时,搜索至完全覆盖的区间后再分类讨论: 1.若修改值大于严格次大值,可以打上懒标记 阅读全文
posted @ 2021-09-28 15:41 PYWBKTDA 阅读(55) 评论(0) 推荐(0) 编辑
摘要:segment tree beats模板题 在线段树上维护区间内内最大值及个数、严格次大值和区间和,即可支持$o(\log n)$查询 修改时,搜索至完全覆盖的区间后再分类讨论: 1.若修改值大于严格次大值,可以打上懒标记并维护上述信息 2.若修改值不超过严格次大值,继续递归下去 (另外,该信息显然 阅读全文
posted @ 2021-09-28 13:19 PYWBKTDA 阅读(58) 评论(0) 推荐(0) 编辑
摘要:考虑对于确定的排列$\{p_{i}\}$,如何求出其(交换后)会得到的排列—— 令$cnt_{x}$为在$i$之前比$x$大的元素个数(其中$p_{i}=x$),显然排列合法当且仅当$cnt_{i}\le k$ 注意到每一次交换至多只有初始靠后的元素$cnt_{i}$减小1,因此交换次数至少为$\s 阅读全文
posted @ 2021-09-27 21:35 PYWBKTDA 阅读(154) 评论(1) 推荐(0) 编辑
摘要:(为了方便,以下除$V$外都改为小写字母) 结论1:若$a+b\le m+1$,则答案为$m+1$(即任意$x$都可以被得到) 任取$y\in [0,m]$,由$\gcd(a,b)=1$存在$y-V=pa+qb$,且不妨假设$p\in [0,b)$ 不断对$x+a$直至加了$p$次或无法再加,对两种 阅读全文
posted @ 2021-09-27 12:39 PYWBKTDA 阅读(144) 评论(0) 推荐(0) 编辑
摘要:即QTREE5和QTREE6组合,即将原本维护子树范围内点数改为维护子树范围内最小值即可,由于最小值没有可减性,因此需要使用set (虽然形式上与QTREE5类似,但QTREE5维护的信息更巧妙一些,而这题比较直接) 另外关于make_root中没有rev的修改,实际上也不需要改变 时间复杂度为$o 阅读全文
posted @ 2021-09-26 12:51 PYWBKTDA 阅读(35) 评论(0) 推荐(0) 编辑
摘要:考虑如下构造: 新建一条边$(0,1)$,并将原树以0为根建树,记$fa_{x}$为$x$的父亲(其中$1\le x\le n$) 维护两棵森林,分别记作$T_{0/1}$,每一条边恰属于一棵,其中$(x,fa_{x})\in T_{0}$当且仅当$x$为白色点 此时,考虑节点$x$的答案(不妨假设 阅读全文
posted @ 2021-09-26 12:23 PYWBKTDA 阅读(31) 评论(0) 推荐(0) 编辑
摘要:定义$f(S)$表示点集$S$的最小连通块 做法1 通过对所有节点判定,可以在$n$次询问中求出具体的$f(S)$ 对于$x\ne y$,显然$(x,y)\in E$当且仅当$f(\{x,y\})=\{x,y\}$,那么直接暴力判定即可 询问次数和时间复杂度均为$o(n^{3})$ 做法2 为了方便 阅读全文
posted @ 2021-09-24 17:56 PYWBKTDA 阅读(253) 评论(0) 推荐(1) 编辑
摘要:合理的正解大概是动态点分治,这里给出其实现 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define N 100005 4 struct Edge{ 5 int nex,to; 6 }edge[N<<1]; 7 multiset<int>S 阅读全文
posted @ 2021-09-24 16:01 PYWBKTDA 阅读(48) 评论(0) 推荐(0) 编辑
摘要:记$g(k)$为$c$恰为$k$的合法三元组数,显然$f(k)=\sum_{i=1}^{k}g(i)$ 结论:若$\lim_{k\rightarrow \infty}\frac{g(k)}{k^{2}}$存在,记其为$s$,则$\lim_{k\rightarrow \infty}\frac{f(k) 阅读全文
posted @ 2021-09-24 11:02 PYWBKTDA 阅读(126) 评论(0) 推荐(0) 编辑
摘要:将奶牛的状态用序列$\{a_{1},a_{2},...,a_{m}\}$来描述,其中$a_{i}$表示第$i$头奶牛的位置(奶牛数量为$m$) 下面,先来考虑对于某个特定的$m$如何处理: 对于一条简单路径,如果路径中(不包括端点)所有点度数均为2且端点的度数均不为2(允许为1),则称该路径为一条" 阅读全文
posted @ 2021-09-23 10:09 PYWBKTDA 阅读(63) 评论(0) 推荐(0) 编辑
摘要:对于一个排列$p_{i}$,假设循环长度依次为$x_{1},x_{2},...,x_{m}$,那么所需步数即${\rm lcm}_{i=1}^{m}x_{i}$ 由于是乘积,因此可以枚举素数$p$,并统计其的次数(注意这是对$\varphi(M)=M-1$取模) 类似于$E(X)=\sum_{i\g 阅读全文
posted @ 2021-09-22 14:13 PYWBKTDA 阅读(39) 评论(0) 推荐(0) 编辑
摘要:类似于[loj2553] 对第一棵树边分治,对第二棵树建立虚树,并根据直径合并的性质来处理第三棵树(另外在第三棵树中计算距离需要使用dfs序+ST表做到$o(1)$优化) 总复杂度为$o(n\log^{2}n)$,可以通过 1 #include<bits/stdc++.h> 2 using name 阅读全文
posted @ 2021-09-21 15:39 PYWBKTDA 阅读(36) 评论(0) 推荐(0) 编辑
摘要:边分治模板题 (第一次写边分治就记一下吧) 对式子变形,即为$\frac{dep_{x}+dep_{y}+dis(x,y)}{2}-dep'_{lca'(x,y)}$ 通过增加节点使每一个点的度数都不超过3,不难证明此时总存在一条边,假设其将其删除后两连通块大小分别为$x$和$y$,则有$y\le 阅读全文
posted @ 2021-09-21 09:21 PYWBKTDA 阅读(45) 评论(0) 推荐(0) 编辑
摘要:结论 注意到如果$x$周围有偶数个1,对$x$操作显然不会改变$a_{x}$,因此不妨强制操作的点周围要有奇数个1,不难发现此时恰好会改变该点,即令$a_{x}=a_{x}\oplus 1$ 称$\{a_{i}\}$合法当且仅当其能被得到,问题即统计合法序列数 显然操作是可逆的,因此$\{a_{i} 阅读全文
posted @ 2021-09-18 10:45 PYWBKTDA 阅读(124) 评论(0) 推荐(0) 编辑
摘要:思路 统计数的种类数,也等价于统计有多少个数满足其之前没有与其相同的数 将序列以$\frac{k}{2}$为块大小分块,那么即会有$m=\frac{2n}{k}$个块 (关于$k=1$的情况,以1为块大小分块即可,具体可以自行代入检验) 考虑$\forall 1\le i<j\le m$,将第$i$ 阅读全文
posted @ 2021-09-16 16:16 PYWBKTDA 阅读(56) 评论(0) 推荐(0) 编辑
摘要:将所有线段的端点(即$a_{i}$和$a_{i}\pm l_{i}$)离散,并按照$a_{i}$从小到大排序 定义$f_{i,,j}$表示前$i$条线段在位置$j$之前最多能覆盖的长度(默认覆盖到$j$,允许覆盖到$j$之后,但该部分不计入覆盖的长度),转移对第$i$条线段的方向分类讨论: (关于" 阅读全文
posted @ 2021-09-16 10:25 PYWBKTDA 阅读(49) 评论(0) 推荐(0) 编辑
摘要:模板题 定义$\lfloor x\rfloor$表示小于等于$x$的最大整数,$\lceil x\rceil$表示大于等于$x$的最小整数 不难发现,若$a\in Z^{+}$且$b,x\in Z$,则$ax\le b\iff x\le \lfloor\frac{b}{a}\rfloor$、$ax\ 阅读全文
posted @ 2021-09-15 22:00 PYWBKTDA 阅读(95) 评论(0) 推荐(0) 编辑
摘要:前置知识 下面,先来介绍一下Stern-Brocot Tree的结构: 其是一棵满二叉树,每一个节点都是一个最简分数,其中根为$\frac{1}{1}$ 假设前$i$层的中序遍历分数依次为$\frac{y_{i,j}}{x_{i,j}}$(其中$i\ge 1,j\in [1,2^{i})$,即根为第 阅读全文
posted @ 2021-09-14 20:55 PYWBKTDA 阅读(124) 评论(2) 推荐(0) 编辑
摘要:为了方便,不妨先将$n$和$m$都减小1,其意义即为移动的次数 注意到老鼠向下移动和猫向上移动对于第2个条件是等价的,对于第1个条件即要求都恰好移动$n$次,那么对应的方案数即为${2n\choose n}$,乘上此系数后不妨将两种操作都看作仅有老鼠向下移动$2n$次 此时,即猫只能向右移动,因此相 阅读全文
posted @ 2021-09-11 08:35 PYWBKTDA 阅读(71) 评论(0) 推荐(0) 编辑
摘要:将方格(参考题目)看作一个点,相邻的两点若颜色相同则连边,即得到一张网格图,而每次询问即求子矩形内的点导出子图对应的连通块数 注意到网格图也是平面图,根据欧拉公式有$V+F-E=1+C$(其中$V,F,E$和$C$分别为点数、块数、边数和连通块数),那么不妨去求$V,F$和$E$ 显然$V=(x_{ 阅读全文
posted @ 2021-09-11 06:36 PYWBKTDA 阅读(70) 评论(0) 推荐(0) 编辑
摘要:考虑不断找到以下两种类型的边,并维护答案: 1.终点出度为0的边,那么此时即令$ans_{x}=\min(ans_{x},\max(r,ans_{y}-p))$​ 2.(在没有"终点出度为0的边时",即优先删除第1类边)剩余边中$r$​​​​最大的边,注意到能走到的每一个点都有出边,且其限制$r$​ 阅读全文
posted @ 2021-09-10 15:22 PYWBKTDA 阅读(59) 评论(0) 推荐(0) 编辑
摘要:2018年论文题 约定:令点集$V=[1,n]$、边集$E=[1,m]$,记$m$条边依次为$e_{i}=(x_{i},y_{i},c_{i})$(其中$1\le i\le m$),将其按照$c_{i}$从小到大排序,即不妨假设有$c_{1}\le c_{2}\le...\le c_{m}$ 先来考 阅读全文
posted @ 2021-09-10 07:05 PYWBKTDA 阅读(427) 评论(0) 推荐(2) 编辑
摘要:称区间$[l,r]$的"信息"为其的答案和第一个、最后一个大于$x$的位置,显然通过$[l,mid]$和$[mid+1,r]$的信息可以$o(1)$合并得到$[l,r]$的信息 考虑分块,将其按$K$的块大小分块,区间查询时求出散块每一个位置的信息(将其看作一个区间)和每一个整块的信息,之后即可$o 阅读全文
posted @ 2021-09-07 08:59 PYWBKTDA 阅读(53) 评论(0) 推荐(0) 编辑
摘要:做法1 以$K$为块大小分块,并对每一个块再维护一个排序后的结果,预处理复杂度为$o(n\log K )$ 区间修改时将整块打上标记,散块暴力修改并归并排序,单次复杂度为$o(\frac{n}{K}+K)$ 区间查询时在整块中二分,散块暴力枚举,单次复杂度为$o(\frac{n}{K}\log K+ 阅读全文
posted @ 2021-09-06 14:08 PYWBKTDA 阅读(96) 评论(0) 推荐(0) 编辑
摘要:做法1 对于每一个询问,直接暴力在每一个序列中二分查询 时间复杂度为$o(nk)-o(k\log n)$ 做法2 将所有序列合并后排序,并对每一个元素预处理出每个序列中第一个大于等于其的元素(位置),那么只需要在总序列中二分并输出该位置预处理的答案即可 关于这个预处理,显然只需要从后往前扫描一遍总序 阅读全文
posted @ 2021-09-06 08:39 PYWBKTDA 阅读(93) 评论(0) 推荐(0) 编辑
摘要:对答案序列求一个高维后缀和,再通过差分将其解出,后者复杂度为$o(n2^{n})$ 对于求后缀和后的结果,即01序列仅要求1处有边(不要求0处没有边),那么也即要求将原图划分为若干条长度给定且没有公共点的链 不妨先去枚举链的长度,假设为$\{l_{1},l_{2},...,l_{m}\}$,要求满足 阅读全文
posted @ 2021-09-04 13:31 PYWBKTDA 阅读(28) 评论(0) 推荐(0) 编辑
摘要:注意到仅关心于每种数个数的奇偶性,并且以此法操作不影响结果 对其使用bitset维护,即可在$o(\frac{v}{\omega})$的复杂度内完成操作1,2和4 对于操作3,即是一个经典的$\gcd$卷积,记$S_{i}$为第$i$个集合对应的bitset(下标范围为$[1,v]$),那么构造倍数 阅读全文
posted @ 2021-09-03 22:37 PYWBKTDA 阅读(36) 评论(0) 推荐(0) 编辑
摘要:构造形如$1,3,2,6,5,4,10,9,8,7,...$的序列,不难发现其中前$\frac{k(k+1)}{2}$项最少要划分为$k$个单调子序列 由此,取$k=f(n)+1$时应有$\frac{k(k+1)}{2}>n$,也即有$f(n)\ge \max_{\frac{k(k+1)}{2}\l 阅读全文
posted @ 2021-09-03 22:18 PYWBKTDA 阅读(51) 评论(0) 推荐(0) 编辑
摘要:将棋盘黑白染色,即构成一张二分图 将状态用一张二分图$G$和一个点$x\in V$描述(分别为仍未被经过的点的导出子图和当前棋子所在位置),并称将要移动棋子的一方为先手 结论:先手必胜当且仅当$x$一定在$G$的最大匹配中 对该结论归纳,显然$|V|\le 2$时显然成立 若$|V|<n$时成立,考 阅读全文
posted @ 2021-09-03 14:43 PYWBKTDA 阅读(71) 评论(0) 推荐(0) 编辑
摘要:参考loj2265中关于杨表的相关知识 先来考虑$m\mid n$的情况: 记$t=\frac{n}{m}$,将序列划分为$[1,m],[m+1,2m],...,[(t-1)m+1,tm]$这$t$段,每一段都至少有$k$个物品且可以同时取到,因此取到最小值时必然都恰为$k$个 构造一个$t$列且每 阅读全文
posted @ 2021-09-03 06:49 PYWBKTDA 阅读(122) 评论(0) 推荐(0) 编辑
摘要:(不妨将下标改为从1开始) 参考loj2265中关于杨表的相关知识 构造一个$n$行且第$i$行有$a_{i}$个格子的杨表,依次记录其每一次增加的时间(范围为$[1,\sum_{i=1}^{n}a_{i}]$) 不难发现,条件即变为要求得到的杨表为标准杨表 另一方面,每一个标准杨表都对应一组方案, 阅读全文
posted @ 2021-09-03 06:28 PYWBKTDA 阅读(70) 评论(0) 推荐(0) 编辑
摘要:标算是状压dp+打表,前者时间复杂度为$o(n^{2}2^{n})$,并通过打表做到$o(1)$ 参考loj2265中关于杨表的相关知识,不难发现答案即$\frac{\sum_{a\vdash n}a_{1}f_{a}^{2}}{n!}$ 记$P(n)$为$a\vdash n$的方案数,后者$f_{ 阅读全文
posted @ 2021-09-02 19:44 PYWBKTDA 阅读(41) 评论(0) 推荐(0) 编辑
摘要:以下内容参考2019年集训队论文《浅谈杨氏矩阵在信息学竞赛中的应用》 1.前置知识 杨表 标准杨表:一张网格图,满足以下条件—— 1.设其有$m$行、第$i$行有$a_{i}$个格子(格子左对齐),则$a_{1}\ge a_{2}\ge ...\ge a_{m}$ 2.每一个格子内有一个正整数,且每 阅读全文
posted @ 2021-09-02 18:48 PYWBKTDA 阅读(121) 评论(0) 推荐(0) 编辑