09 2021 档案

摘要:(事实上,总是可以让每一场都比,因此wi并没有意义) 当k=2时,有如下做法—— 新建一个点,向所有奇度数的点连边,并对得到的图求欧拉回路,那么只需要将欧拉回路上的边交替染色,即可保证|si,1si,2|1(路径长度为奇数时的起点),去掉新建的点后仍有$|s_ 阅读全文
posted @ 2021-09-30 10:27 PYWBKTDA 阅读(53) 评论(0) 推荐(0) 编辑
摘要:记d(x,y)xy的距离,costx=i=1nwid(x,i)32x的代价 取C为足够大量,对于一条边权为w的边,在边上新建wC1个点,这些点点权为0(即本身无影响),并将边拆成wC段,那么每一段边权 阅读全文
posted @ 2021-09-30 09:59 PYWBKTDA 阅读(38) 评论(0) 推荐(0) 编辑
摘要:记ai为当前第i个水箱的电流,biai的历史最大值 不难发现,问题即要支持:对ai区间覆盖和区间加(并对0取max);查询某个aibi 整体思路类似于bzoj3064,仍维护maxa,b​和操作序列,操作执行方式即令$ 阅读全文
posted @ 2021-09-29 13:48 PYWBKTDA 阅读(46) 评论(0) 推荐(0) 编辑
摘要:记ai为时刻i当前cpu使用率,biai的历史最大值 不难发现,问题即要支持:对ai区间赋值和区间加;查询aibi的区间最大值 在线段树的节点上维护maxa,b和一个操作序列(类似懒标记),序列中的元素为操作(赋值或加),并 阅读全文
posted @ 2021-09-28 21:38 PYWBKTDA 阅读(53) 评论(0) 推荐(0) 编辑
摘要:整体思路类似于hdu5306,在线段树上维护区间内最大值及个数、严格次大值、最小值及个数、严格次小值和区间和,即可支持o(logn)查询 修改时,区间加直接维护即可,区间取min的做法与该题相同—— 修改时,搜索至完全覆盖的区间后再分类讨论: 1.若修改值大于严格次大值,可以打上懒标记 阅读全文
posted @ 2021-09-28 15:41 PYWBKTDA 阅读(69) 评论(0) 推荐(0) 编辑
摘要:segment tree beats模板题 在线段树上维护区间内内最大值及个数、严格次大值和区间和,即可支持o(logn)查询 修改时,搜索至完全覆盖的区间后再分类讨论: 1.若修改值大于严格次大值,可以打上懒标记并维护上述信息 2.若修改值不超过严格次大值,继续递归下去 (另外,该信息显然 阅读全文
posted @ 2021-09-28 13:19 PYWBKTDA 阅读(70) 评论(0) 推荐(0) 编辑
摘要:考虑对于确定的排列{pi},如何求出其(交换后)会得到的排列—— 令cntx为在i之前比x大的元素个数(其中pi=x),显然排列合法当且仅当cntik 注意到每一次交换至多只有初始靠后的元素cnti减小1,因此交换次数至少为$\s 阅读全文
posted @ 2021-09-27 21:35 PYWBKTDA 阅读(161) 评论(1) 推荐(0) 编辑
摘要:(为了方便,以下除V外都改为小写字母) 结论1:若a+bm+1,则答案为m+1(即任意x都可以被得到) 任取y[0,m],由gcd(a,b)=1存在yV=pa+qb,且不妨假设p[0,b) 不断对x+a直至加了p次或无法再加,对两种 阅读全文
posted @ 2021-09-27 12:39 PYWBKTDA 阅读(161) 评论(0) 推荐(0) 编辑
摘要:即QTREE5和QTREE6组合,即将原本维护子树范围内点数改为维护子树范围内最小值即可,由于最小值没有可减性,因此需要使用set (虽然形式上与QTREE5类似,但QTREE5维护的信息更巧妙一些,而这题比较直接) 另外关于make_root中没有rev的修改,实际上也不需要改变 时间复杂度为$o 阅读全文
posted @ 2021-09-26 12:51 PYWBKTDA 阅读(41) 评论(0) 推荐(0) 编辑
摘要:考虑如下构造: 新建一条边(0,1),并将原树以0为根建树,记faxx的父亲(其中1xn) 维护两棵森林,分别记作T0/1,每一条边恰属于一棵,其中(x,fax)T0当且仅当x为白色点 此时,考虑节点x的答案(不妨假设 阅读全文
posted @ 2021-09-26 12:23 PYWBKTDA 阅读(34) 评论(0) 推荐(0) 编辑
摘要:定义f(S)表示点集S的最小连通块 做法1 通过对所有节点判定,可以在n次询问中求出具体的f(S) 对于xy,显然(x,y)E当且仅当f({x,y})={x,y},那么直接暴力判定即可 询问次数和时间复杂度均为o(n3) 做法2 为了方便 阅读全文
posted @ 2021-09-24 17:56 PYWBKTDA 阅读(278) 评论(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 阅读(55) 评论(0) 推荐(0) 编辑
摘要:记g(k)c恰为k的合法三元组数,显然f(k)=i=1kg(i) 结论:若limkg(k)k2存在,记其为s,则$\lim_{k\rightarrow \infty}\frac{f(k) 阅读全文
posted @ 2021-09-24 11:02 PYWBKTDA 阅读(134) 评论(0) 推荐(0) 编辑
摘要:将奶牛的状态用序列{a1,a2,...,am}来描述,其中ai表示第i头奶牛的位置(奶牛数量为m) 下面,先来考虑对于某个特定的m如何处理: 对于一条简单路径,如果路径中(不包括端点)所有点度数均为2且端点的度数均不为2(允许为1),则称该路径为一条" 阅读全文
posted @ 2021-09-23 10:09 PYWBKTDA 阅读(72) 评论(0) 推荐(0) 编辑
摘要:对于一个排列pi,假设循环长度依次为x1,x2,...,xm,那么所需步数即lcmi=1mxi 由于是乘积,因此可以枚举素数p,并统计其的次数(注意这是对φ(M)=M1取模) 类似于$E(X)=\sum_{i\g 阅读全文
posted @ 2021-09-22 14:13 PYWBKTDA 阅读(41) 评论(0) 推荐(0) 编辑
摘要:类似于[loj2553] 对第一棵树边分治,对第二棵树建立虚树,并根据直径合并的性质来处理第三棵树(另外在第三棵树中计算距离需要使用dfs序+ST表做到o(1)优化) 总复杂度为o(nlog2n),可以通过 1 #include<bits/stdc++.h> 2 using name 阅读全文
posted @ 2021-09-21 15:39 PYWBKTDA 阅读(38) 评论(0) 推荐(0) 编辑
摘要:边分治模板题 (第一次写边分治就记一下吧) 对式子变形,即为depx+depy+dis(x,y)2deplca(x,y) 通过增加节点使每一个点的度数都不超过3,不难证明此时总存在一条边,假设其将其删除后两连通块大小分别为xy,则有$y\le 阅读全文
posted @ 2021-09-21 09:21 PYWBKTDA 阅读(47) 评论(0) 推荐(0) 编辑
摘要:结论 注意到如果x周围有偶数个1,对x操作显然不会改变ax,因此不妨强制操作的点周围要有奇数个1,不难发现此时恰好会改变该点,即令ax=ax1{ai}合法当且仅当其能被得到,问题即统计合法序列数 显然操作是可逆的,因此$\{a_{i} 阅读全文
posted @ 2021-09-18 10:45 PYWBKTDA 阅读(131) 评论(0) 推荐(0) 编辑
摘要:思路 统计数的种类数,也等价于统计有多少个数满足其之前没有与其相同的数 将序列以k2为块大小分块,那么即会有m=2nk个块 (关于k=1的情况,以1为块大小分块即可,具体可以自行代入检验) 考虑1i<jm,将第i 阅读全文
posted @ 2021-09-16 16:16 PYWBKTDA 阅读(59) 评论(0) 推荐(0) 编辑
摘要:将所有线段的端点(即aiai±li)离散,并按照ai从小到大排序 定义fi,,j表示前i条线段在位置j之前最多能覆盖的长度(默认覆盖到j,允许覆盖到j之后,但该部分不计入覆盖的长度),转移对第i条线段的方向分类讨论: (关于" 阅读全文
posted @ 2021-09-16 10:25 PYWBKTDA 阅读(54) 评论(0) 推荐(0) 编辑
摘要:模板题 定义x表示小于等于x的最大整数,x表示大于等于x的最小整数 不难发现,若aZ+b,xZ,则axbxba、$ax\ 阅读全文
posted @ 2021-09-15 22:00 PYWBKTDA 阅读(114) 评论(0) 推荐(0) 编辑
摘要:前置知识 下面,先来介绍一下Stern-Brocot Tree的结构: 其是一棵满二叉树,每一个节点都是一个最简分数,其中根为11 假设前i层的中序遍历分数依次为yi,jxi,j(其中i1,j[1,2i),即根为第 阅读全文
posted @ 2021-09-14 20:55 PYWBKTDA 阅读(128) 评论(2) 推荐(0) 编辑
摘要:为了方便,不妨先将nm都减小1,其意义即为移动的次数 注意到老鼠向下移动和猫向上移动对于第2个条件是等价的,对于第1个条件即要求都恰好移动n次,那么对应的方案数即为(2nn),乘上此系数后不妨将两种操作都看作仅有老鼠向下移动2n次 此时,即猫只能向右移动,因此相 阅读全文
posted @ 2021-09-11 08:35 PYWBKTDA 阅读(72) 评论(0) 推荐(0) 编辑
摘要:将方格(参考题目)看作一个点,相邻的两点若颜色相同则连边,即得到一张网格图,而每次询问即求子矩形内的点导出子图对应的连通块数 注意到网格图也是平面图,根据欧拉公式有V+FE=1+C(其中V,F,EC分别为点数、块数、边数和连通块数),那么不妨去求V,FE 显然$V=(x_{ 阅读全文
posted @ 2021-09-11 06:36 PYWBKTDA 阅读(74) 评论(0) 推荐(0) 编辑
摘要:考虑不断找到以下两种类型的边,并维护答案: 1.终点出度为0的边,那么此时即令ansx=min(ansx,max(r,ansyp))​ 2.(在没有"终点出度为0的边时",即优先删除第1类边)剩余边中r​​​​最大的边,注意到能走到的每一个点都有出边,且其限制r阅读全文
posted @ 2021-09-10 15:22 PYWBKTDA 阅读(62) 评论(0) 推荐(0) 编辑
摘要:2018年论文题 约定:令点集V=[1,n]、边集E=[1,m],记m条边依次为ei=(xi,yi,ci)(其中1im),将其按照ci从小到大排序,即不妨假设有c1c2...cm 先来考 阅读全文
posted @ 2021-09-10 07:05 PYWBKTDA 阅读(485) 评论(0) 推荐(2) 编辑
摘要:称区间[l,r]的"信息"为其的答案和第一个、最后一个大于x的位置,显然通过[l,mid][mid+1,r]的信息可以o(1)合并得到[l,r]的信息 考虑分块,将其按K的块大小分块,区间查询时求出散块每一个位置的信息(将其看作一个区间)和每一个整块的信息,之后即可$o 阅读全文
posted @ 2021-09-07 08:59 PYWBKTDA 阅读(59) 评论(0) 推荐(0) 编辑
摘要:做法1 以K为块大小分块,并对每一个块再维护一个排序后的结果,预处理复杂度为o(nlogK) 区间修改时将整块打上标记,散块暴力修改并归并排序,单次复杂度为o(nK+K) 区间查询时在整块中二分,散块暴力枚举,单次复杂度为$o(\frac{n}{K}\log K+ 阅读全文
posted @ 2021-09-06 14:08 PYWBKTDA 阅读(115) 评论(0) 推荐(0) 编辑
摘要:做法1 对于每一个询问,直接暴力在每一个序列中二分查询 时间复杂度为o(nk)o(klogn) 做法2 将所有序列合并后排序,并对每一个元素预处理出每个序列中第一个大于等于其的元素(位置),那么只需要在总序列中二分并输出该位置预处理的答案即可 关于这个预处理,显然只需要从后往前扫描一遍总序 阅读全文
posted @ 2021-09-06 08:39 PYWBKTDA 阅读(105) 评论(0) 推荐(0) 编辑
摘要:对答案序列求一个高维后缀和,再通过差分将其解出,后者复杂度为o(n2n) 对于求后缀和后的结果,即01序列仅要求1处有边(不要求0处没有边),那么也即要求将原图划分为若干条长度给定且没有公共点的链 不妨先去枚举链的长度,假设为{l1,l2,...,lm},要求满足 阅读全文
posted @ 2021-09-04 13:31 PYWBKTDA 阅读(30) 评论(0) 推荐(0) 编辑
摘要:注意到仅关心于每种数个数的奇偶性,并且以此法操作不影响结果 对其使用bitset维护,即可在o(vω)的复杂度内完成操作1,2和4 对于操作3,即是一个经典的gcd卷积,记Si为第i个集合对应的bitset(下标范围为[1,v]),那么构造倍数 阅读全文
posted @ 2021-09-03 22:37 PYWBKTDA 阅读(37) 评论(0) 推荐(0) 编辑
摘要:构造形如1,3,2,6,5,4,10,9,8,7,...的序列,不难发现其中前k(k+1)2项最少要划分为k个单调子序列 由此,取k=f(n)+1时应有k(k+1)2>n,也即有$f(n)\ge \max_{\frac{k(k+1)}{2}\l 阅读全文
posted @ 2021-09-03 22:18 PYWBKTDA 阅读(56) 评论(0) 推荐(0) 编辑
摘要:将棋盘黑白染色,即构成一张二分图 将状态用一张二分图G和一个点xV描述(分别为仍未被经过的点的导出子图和当前棋子所在位置),并称将要移动棋子的一方为先手 结论:先手必胜当且仅当x一定在G的最大匹配中 对该结论归纳,显然|V|2时显然成立 若|V|<n时成立,考 阅读全文
posted @ 2021-09-03 14:43 PYWBKTDA 阅读(83) 评论(0) 推荐(0) 编辑
摘要:参考loj2265中关于杨表的相关知识 先来考虑mn的情况: 记t=nm,将序列划分为[1,m],[m+1,2m],...,[(t1)m+1,tm]t段,每一段都至少有k个物品且可以同时取到,因此取到最小值时必然都恰为k个 构造一个t列且每 阅读全文
posted @ 2021-09-03 06:49 PYWBKTDA 阅读(131) 评论(0) 推荐(0) 编辑
摘要:(不妨将下标改为从1开始) 参考loj2265中关于杨表的相关知识 构造一个n行且第i行有ai个格子的杨表,依次记录其每一次增加的时间(范围为[1,i=1nai]) 不难发现,条件即变为要求得到的杨表为标准杨表 另一方面,每一个标准杨表都对应一组方案, 阅读全文
posted @ 2021-09-03 06:28 PYWBKTDA 阅读(71) 评论(0) 推荐(0) 编辑
摘要:标算是状压dp+打表,前者时间复杂度为o(n22n),并通过打表做到o(1) 参考loj2265中关于杨表的相关知识,不难发现答案即ana1fa2n!P(n)an的方案数,后者$f_{ 阅读全文
posted @ 2021-09-02 19:44 PYWBKTDA 阅读(43) 评论(0) 推荐(0) 编辑
摘要:以下内容参考2019年集训队论文《浅谈杨氏矩阵在信息学竞赛中的应用》 1.前置知识 杨表 标准杨表:一张网格图,满足以下条件—— 1.设其有m行、第i行有ai个格子(格子左对齐),则a1a2...am 2.每一个格子内有一个正整数,且每 阅读全文
posted @ 2021-09-02 18:48 PYWBKTDA 阅读(128) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示