04 2018 档案
摘要:"luogu" 题意 其实就是四维偏序。 sol 第一维排序,然后就只需要写个$3D tree$了。 据说$kD tree$的单次查询复杂度是$O(n^{1 \frac{1}{k}})$。所以这里的复杂度是$O(n^{\frac{5}{3}})$。 code cpp include include
阅读全文
摘要:"bzoj" 题意 一个长度为$n$的序列,$m$次询问,每次询问区间$[l,r]$中只出现了一次的最大的数是多少。如果没有满足条件的数则答案为$0$。 $n\le10^5,m\le2 10^5$,强制在线。 sol 对每个位置记前一个和它相同的位置$pre_i$(如果没有则为$0$),后一个和它相
阅读全文
摘要:"bzoj" 题意 一个$n n$的棋盘,每次单点修改,矩形求和。 操作数$\le2 10^5$,强制在线,空间限制$20M$。 sol $CDQ$,树套树都被卡掉了。 所以$kd tree$了解一下? 查询的时候类似线段树的查询,如果当前区间是查询区间的子集那就直接加上和返回,如果没有交集也直接返
阅读全文
摘要:"bzoj" 题意 平面上有$n$个点,每次往这个平面上加入一个点,或是询问离某个点最近点的距离。 这里的距离指的是曼哈顿距离。 sol $kd Tree$了解一下? $O(n\log n)$建树,然后$O(m\sqrt n)$查询。 插入导致树的不平衡? 定期重构即可。 code
阅读全文
摘要:"vjudge" 题意 一个排列$\{ a_i \}$的权值为$\sum_{i=1}^{n}p_{i,a_i}$。 求期望随机重构排列多少次可以使这个排列的权值$\ge m$。 $n\le12$ sol 假设一共有$s$个排列满足权值$\ge m$,那么一次随机后满足条件的概率就是$\frac{s}
阅读全文
摘要:"vjudge" 题意 有$m$个人都要跟你进行$n$场石头剪刀布的游戏。你决定使用相同的出拳序列来迎战这$m$个人。 然后你又想和这$m$个人都打成平局。求方案数。 $n\le20,m\le100$ sol 总状态数显然是$3^{20}$对吧。 考虑$Meet\ in\ the\ middle$。
阅读全文
摘要:"bzoj" 题意 给你一个初始模板串,要求资瓷以下两个操作: 1、在模板串的末尾接上一个串; 2、查询一个串在模板串中出现了多少次。 强制在线。 sol 末尾添加直接$extend$。 查询一个串的出现次数就是查对应状态的$right$集合大小。 由于是动态的所以需要用$LCT$维护。相当于是在维
阅读全文
摘要:多项式 FFT cpp void FFT(Complex P,int opt){ for (int i=0;i 1] 1)|((i&1) 1); for (int i=0;i 1); for (int i=0;i 1); for (int i=0;i 1,ls=Stack[top ]; solve(
阅读全文
摘要:"bzoj" "luogu" 题意 给你一个$n m$的网格,每个位置上有一个箭头指向上或下或左或右。有些位置上还没有箭头,现在要求你在这些没有箭头的位置上填入箭头,使得从网格的任意一个位置开始,都可以沿着箭头走出网格。 求填入的方案数膜$10^9+7$ sol 给“网格外”建一个点。每个格子向它指
阅读全文
摘要:"bzoj" sol 矩阵树定理裸题 其实可以不用辗转相除直接乘逆元就好了。~~然而我还是写的辗转相除~~ code cpp include include using namespace std; int gi() { int x=0,w=1;char ch=getchar(); while ((
阅读全文
摘要:"bzoj" "luogu" sol 就是求以$1$为根的生成树的数量。 直接矩阵树定理。 code cpp include include include using namespace std; int gi() { int x=0,w=1;char ch=getchar(); while ((
阅读全文
摘要:"bzoj" "luogu" Description 你突然有了一个大房子,房子里面有一些房间。事实上,你的房子可以看做是一个包含n m个格子的格状矩形,每个格子是一个房间或者是一个柱子。在一开始的时候,相邻的格子之间都有墙隔着。 你想要打通一些相邻房间的墙,使得所有房间能够互相到达。在此过程中,你
阅读全文
摘要:"vjudge" "luogu" 题意 就是要你求无向图的生成树个数。$n\le 12$,保证答案不爆$long long$。 sol 矩阵树定理直接上。 如果怕掉精可以写整数意义下的高斯消元,需要辗转相除,复杂度多个$\log$ code cpp include include include u
阅读全文
摘要:~~别想了这里没有证明~~ 矩阵树定理 可以求一张图(无向图有向图均可)的生成树个数。 针对无向图 对于一张无向图$G$,构造其基尔霍夫矩阵: 对于一条无向边$(u,v)$,$a[u][u]++,a[v][v]++,a[u][v] ,a[v][u] $。 把基尔霍夫矩阵去掉任意一行一列然后求行列式即
阅读全文
摘要:"bzoj" "luogu" sol 考场上普及$dp$都做不来,果然是思想僵化了。 设$f[u][i][j]$表示在$u$点,上方有$i$条未修复的公路和$j$条未修复的铁路的最小花费。 转移只有两种情况,对于修公路和修铁路分开处理即可。 复杂度$O(n 40^2)$。可以卡一下空间,也就是乡村的
阅读全文
摘要:HNOI2018游记 Day 0 信息组罕见的假期,早上一觉睡到九点钟。然而机房里的大佬八点不到就来切题了orz。 上午没写什么东西,写了个整体二分的板子题,一个+1写错还调了好久。 下午练了一下$Hash$,写起来感觉不错,基本上可以做到一遍过。 晚上当然就是机房互奶啦。yyb奶今年会考生成函数(
阅读全文
摘要:"luogu" 题意 给出一个由小写英文字母组成的字符串$S$,再给出$q$个询问,要求回答$S$某个子串的最短循环节。 如果字符串$B$是字符串$A$的循环节,那么$A$可以由$B$重复若干次得到。 $|S|\le5 10^5,q\le2 10^6$ sol 考虑一个子串$T$要成为原串$S$的循
阅读全文
摘要:"bzoj" "luogu" 题意 给你一个串,支持三种操作: 1、在一个位置插入一个字符。 2、把一个位置的字符修改。 3、查询两个后缀的$lcp$。 任意时候字符串长度$\le 10^5$,询问操作$\le 10^4$,总操作数$\le 1.5 10^5$ sol 二分+$hash$。只要在$s
阅读全文
摘要:"bzoj" 题意 给你$n$个长为$L$且互不相同的字符串,定义两个串相似当且仅当两个串只有一个位置不同。求相似的串的对数。 $n\le30000,L\le200$ sol 枚举一下不同的那个位置,这样就要求前后都必须完全相同。 对每个串的前缀后缀哈希即可。 (单哈希居然过了) code cpp
阅读全文
摘要:"luogu" 题意 给你一个$N N$的矩阵,每次询问一个子矩形的第K小数。(居然连修改都不带的) $N\le500,Q\le60000$ sol 整体二分+二维树状数组裸题。 复杂度是$O((n^2+Q)\log n^2 \log^2 n)$也就是$3$个$\log$吧。 code cpp in
阅读全文
摘要:"bzoj" "luogu" 题意 线性递推式$X_{i+1}=aX_i+b\mod\ p$。 给你$p,a,b,X_1,t$,要你求最小的$i$满足$X_i=t$或判断无解。 sol 推一下通项公式吧。 $$X_i=aX_{i 1}+b=a(aX_{i 2}+b)+b=...\\=a^{i 1}X
阅读全文
摘要:BSGS算法总结 $BSGS$算法(Baby Step Giant Step),即大步小步算法,用于解决这样一个问题: 求$y^x\equiv z\ (mod\ p)$的最小正整数解。 前提条件是$(y,p)=1$。 我们选定一个大步长$m=\sqrt p + 1$,设$x=am+b$,那么显然有$
阅读全文
摘要:"luogu" 题意 支持平面内单点加一个值以及矩阵求和。 平面大小$W\le2 10^6$,修改操作$\le1.6 10^5$,查询操作$\le10^4$ sol $CDQ$写一发。 把一个询问拆成四个点,类似二维前缀和的形式。这样对于每一个询问,相当于就是问满足$x_i\le X,y_i\le
阅读全文
摘要:"luogu" 题意 一个平面上有$n$个点,$m$次操作,每次新增一个点,或者是询问离某个点最近的点的距离。这里的距离是曼哈顿距离。 $n,m\le3 10^5$ sol 写一发$CDQ$。 只考虑询问点在其他点的右上方的情况,假设询问点是$A$,那么所求的距离就是$(X_A X_i)+(Y_A
阅读全文
摘要:"bzoj" "luogu" 题意 你需要维护一个括号序列,支持如下四种操作: 1、把区间$[l,r]$全部改成 或是 。 2、把区间$[l,r]$翻转。 3、把区间$[l.r]$反转,即 变`) )`变 。 4、查询区间$[l,r]$至少要修改几个括号才能全部匹配。 sol 一个区间的括号去掉匹配
阅读全文
摘要:"bzoj" "luogu" 题意 给你一棵树,每个点有点权,支持三种操作: 1、换根。 2、路径全部改成某一个数。 3、查询子树最小值。 sol $LCT?$naive了吧。 考虑换根对子树形态的影响。对于原树中的父子关系而言(以$1$为根的树),当根不在询问点的子树中时,询问点的子树和在原树中的
阅读全文
摘要:"luogu" 题意(简化版) 给你一棵树,每个点上有一个$SG$值,问你是否存在一条路径使得$SG$异或和为$0$。 sol 可以当做每个点的稳定值就是这个点上的石子数量。 很显然我们只需要把每个点的$SG$值处理出来后面的就好做了。 分别考虑$k$的不同取值下的$SG$函数的计算方法。 $k=1
阅读全文
摘要:"vjudge" 题意 给你一个串,问你把每个位置的字符替换成 后串中有多少本质不同的子串。 $n\le 3 10^5$ sol 首先可以计算出原串里面有多少本质不同的子串。显然就是$\sum_{i=1}^{tot}len_i len_{fa_i}$。 然后考虑把$i$位置替换成了 ,那么你从$1.
阅读全文
摘要:"luogu" 题意 给你一个串$S$以及一个字符串数组$T[1..m]$,$q$次询问,每次问$S$的子串$S[p_l..p_r]$在$T[l..r]$中的哪个串里的出现次数最多,并输出出现次数。 如有多解输出最靠前的那一个。 $|S|\le5 10^5,\sum|T|\le5 10^4,q\le
阅读全文
摘要:"bzoj" "luogu" 题意 给你$n$个$m$维向量,每个向量有一个权值,求最小权极大线性无关组。 sol 按照权值排序从小到大插入就好了。 这样很好证明:若存在一组向量线性相关,那么肯定是删掉权值最大的那个向量最优。那么按权值从小到大插入时只要发现当前待插入向量与原向量集线性相关就不插入。
阅读全文
摘要:"bzoj" "luogu" 题意 给出$n,m$要求构造一个$n \times m$的$01$矩阵使得每个点及其上下左右(如果有的话)的元素的异或和为$0$。构造出来的矩阵不能全是$0$。 $n,m\le40$ sol 如何保证解出来不是全$0$?只要对于每个自由元都强制设成$1$就可以了。 想都
阅读全文
摘要:[bzoj][1] [luogu][2] 题意 给你$m$个$n$元异或方程,方程是一个一个给的,问你给到第几个的时候出解,或者是在得到$m$个方程后仍不能确定解。保证方程不会前后矛盾,即不会出现无解。 sol 我今天突然发现异或方程组的高斯消元和线性基就是一个东西。 这道题其实就是问你什么时候你可
阅读全文
摘要:"luogu" 题意 给你一个序列a,长度为n,有m次操作,每次询问一个区间是否可以选出两个数它们的差为x,或者询问一个区间是否可以选出两个数它们的和为x,或者询问一个区间是否可以选出两个数它们的乘积为x ,这三个操作分别为操作1,2,3 选出的这两个数可以是同一个位置的数 所有数据$\le 10^
阅读全文
摘要:"bzoj" "luogu" sol 首先可以把依赖关系转成一个森林。自下而上维护出每个点的$size$,表示这关解锁以后一共有多少关。 考虑没有重复数字的情况。 直接从小往大贪心把每个数赋给当前已解锁的最后一关就可以了。 有重复? 一样的。重复的数字一起考虑,假设有$k$个重复的数,那就把这个数先
阅读全文
摘要:"bzoj" "luogu" sol 从前往后依次加边,每次对一个人做完劈配后就把当前这个残余网络存下来。这样第二问就可以二分排在第几名然后check一下在对应排名的残余网络上还能不能再增广。 给网络流开结构体直接赋值美滋滋。 然后这样就可以根据评测机的实际情况获得$60 80$不等的好成绩。 一个
阅读全文
摘要:"bzoj" "luogu" "uoj" sol $orz\ \ HJT\ \ dalao$教会我做这道题。 考虑每两个相邻位置的树的差异。 对于一个1操作(更换生长节点),假设区间是$[l,r]$,那么第$l 1$棵树和第$l$棵数就会产生一定的差异,具体来说,假设在这之后没有1操作了,那么所有应
阅读全文
摘要:"luogu" 题意 有一个$n$个点的森林,一开始一条边也没有,你要支持以下操作: 1、连接两个点。 2、查询一个点所在树(连通块)的重心编号。 3、查询每棵树的重心编号的异或和。 sol 重心有这样的两个性质: 1、以重心为根时每棵子树的大小不超过$\frac{n}{2}$; 2、两棵树合并后,
阅读全文
摘要:"luogu" "vjudge" 题意 一棵树,每个点初始有个点权和颜色(输入会给你) 0 u :询问所有u,v路径上的最大点权,要满足u,v路径上所有点的颜色都相同 1 u :反转u的颜色 2 u w :把u的点权改成w $color_i\in [0,1],w_i\in [−10^9,10^9],
阅读全文
摘要:"luogu" "vjudge" 题意 给你一棵n个点的树,编号1~n。每个点可以是黑色,可以是白色。初始时所有点都是黑色。支持两种操作: 0 u:询问有多少个节点v满足路径u到v上所有节点(包括)都拥有相同的颜色 1 u:翻转u的颜色 sol 第一问其实就是问u所在的同色连通块的大小。 有一种很直
阅读全文
摘要:"bzoj" "luogu" sol 首先,要保证一个格子的左边和上方都放满了棋子,就需要这个点的左上方那个矩形都放满了棋子。 这样放棋子状态就会是一个自左下至右上的轮廓线。 状态数?$C_{20}^{10}$。相当于是从左下角走到右上角一共要走$20$步,在其中选出$10$向上走其余的向右走。 也
阅读全文
摘要:"luogu" sol 这种字符串匹配的问题显然可以把一个串$reverse$过来然后用$FFT$做吧。 对每种字母分开考虑,设两个多项式$A(x),B(x)$,其中 $$A(x)=\sum_{i=0}^{n 1}[区间[i k,i+k]内存在该种字符]x^i$$ $$B(x)=\sum_{i=0}
阅读全文
摘要:"luogu" 题意 给你一个无向图$G(V,E)$。 每个顶点都有一个int范围内的整数的标记。 不同的顶点可能有相同的标记。 对于边$(u,v)$,我们定义$Cost(u,v)=\rm mark_u\ xor \ mark_v$。 现在我们知道某些节点的标记了。你需要确定其他节点的标记,以使边的
阅读全文
摘要:"vjudge" 题意 你有一张$n$点的无向图,每个点有一个点权$w_i$。图中原来存在一些边,你可以任意给这张图加上一些边。 记点$i$到点$1$的距离为$d_i$,你需要最小化$\sum_{i=1}^{n}(w_i d_i)^2$。 sol 第一次做$Topcoder$的题。。。 很像 "[H
阅读全文
摘要:"bzoj" sol 每天每座城市建一个点,该怎么连边就怎么连边,每次只需要在上一次的残余网络上跑最大流,所以复杂度不会太高。 code cpp include include include include using namespace std; int gi() { int x=0,w=1;c
阅读全文
摘要:"vjudge" 题意 给你一个0~9组成的字符串,你可以从中选取一个子序列(或者说一个集合)。 如果位置$i,j$同时被选,就可以获得$w[i][j]$的收益。 对于每一种数字,设其被选的次数为$k_i$,那么你需要对这个数字付出的代价为 $$A_i(k_i 1)+B_i\ \ \ (k_i 0)
阅读全文
摘要:"luogu" 题意 有$n$个$01$变量,你要确定它们的值,改变第$i$个变量的代价是$v_i$。 有$m$个限制条件,每个形如:某个变量集合内的所有元素都必须是$0$,或者都必须是$1$。达成这个条件会获得$W_i$的收益,否则有可能会付出$g$的代价。 求最大收益。 sol 最大权闭合子图。
阅读全文
摘要:"vjudge" 题意 棋盘上有$n$枚棋子,两名游戏者进行操作,先手可以任意取走一枚棋子,之后每名游戏者取走的棋子都必须与上回合对手取走的棋子的曼哈顿距离不超过$L$。给出$L$以及$n$枚棋子的坐标,问是否后手必胜。 sol 棋子之间曼哈顿距离不超过$L$的连边做最大匹配,若存在完美匹配则后手必
阅读全文
摘要:"uoj" "luogu" "bzoj" sol 你可以列一个表格。 | 一个框子里放球的数量 | 0 | 1 | 2 | 3 | | : : | : : | : : | : : | : : | | 对“半空框子”数量的贡献 | 1 | 1 | 0 | 0 | 把一个框子拆三个点。两两之间连边。 会
阅读全文
摘要:带花树 前置技能 匈牙利算法(二分图最大匹配) 为什么要有带花树 考虑一下二分图和一般图的最大区别(或者说唯一的区别在哪里)。 二分图没有奇环(也就是长度为奇数的环),而一般图是可以有的。 所以匈牙利算法中的寻找增广路然后路径取反的方法在一般图上就不适用了。 主要还是要解决奇环的问题。 我们发现一个
阅读全文
摘要:"dbzoj" "vjudge1" "vjudge2" sol 给一个无向图,求判定是不是弦图。 sol 还是 "弦图" 那套理论。 复杂度是$O(n^2)$的,因为$m$本质上和$n^2$是同级的。 code cpp include include include using namespace
阅读全文
摘要:"luogu" 题意 求弦图的最大独立集。 sol 按照完美消除序列一个个贪心选即可。 code
阅读全文
摘要:"bzoj" "luogu" 题意 求一个弦图的最小色数。 sol 根据 "弦图" 的那套理论,最小色数等于最小团数。 code cpp include include include using namespace std; int gi() { int x=0,w=1;char ch=getch
阅读全文
摘要:弦图 首先是弦的定义: 连接换上两个不相邻节点的边称为弦。 定义和数学中一个圆的弦比较像。 然后是弦图的定义: 若一张无向图中任意一个大小超过3的环都存在至少一条弦,那么这样的图称为弦图。 单纯点: 与其相邻的点集的诱导子图(把所以的边都连上后生成的图)是一个团(任两个点之间都有边)。 完美消除序列
阅读全文
摘要:"luogu" 题意 给出$n,a_i,B_{min},B_{max}$,求使得$a_1x_1+a_2x_2+...+a_nx_n=B$存在一组非负整数解的$B\in[B_{min},B_{max}]$的数量。 $n\le12,0\le a_i \le 5 10^5,1\le B_{min}\le
阅读全文
摘要:"luogu" 题意 其实就是给你三个数$x,y,z$,问你能够凑出多少个$[1,h]$之间的数。 $1\le h \le 2^{63} 1$,$1\le x,y,z \le 10^5$ sol 用$y,z$凑出的在模$x$意义下相同的数一定是越小越好。 所以可以写一个最短路求出用$y,z$凑出的在
阅读全文
摘要:"luogu" 题意 给定一个n个节点的树,每个节点表示一个整数,问u到v的路径上有多少个不同的整数。 sol 也就是路径数颜色。树上莫队板子题。 我这种分块的姿势貌似是假的。 所以跑的是最慢的QAQ。 update 2018.4.5:真的是假的明明不带修改我块的大小还设的$n^{0.6}$。$\s
阅读全文
摘要:"luogu" sol 这题有点像网络流24题里面的太空飞行计划啊。 最大收益=总收益 最小损失。 先令$ans=\sum$任务收益。 源点向每个任务连容量为收益的边。 每个机器向汇点连容量为购买费用的边。 每个任务向对应的机器连容量为租赁费用的边。 最小割即可。 code 在$bfs$里面用了一个
阅读全文
摘要:"bzoj" 题意 给定一个序列A[i],每次询问l,r,求[l,r]内最长子串,使得该子串为不上升子串或不下降子串。 sol 这还不带修改? 话说回来这种东西维护起来也很简单。记一下每块左右边的数字,最长的不下降子串长度,左连续、右连续的最长不下降子串长度,还有总长度。向上合并只要分类讨论一下即可
阅读全文
摘要:"dbzoj" Description 小C 有一个能量魔方,这个魔方可神奇了,只要按照特定方式,放入不同的 能量水晶,就可以产生巨大的能量。 能量魔方是一个 N N N 的立方体,一共用 N3 个空格可以填充能量水晶。 能量水晶有两种: ·一种是正能量水晶(Positive) ·一种是负能量水晶(
阅读全文
摘要:"bzoj" "luogu" sol 显然这个玩意儿和普通$Nim$游戏是有区别的。 形式化的,$Nim$游戏的关键在于决策集合为空者负,而这里的决策集合为空者胜。 所以就显然不能直接用$SG$函数的那套理论。 这种“决策集合为空者胜”的博弈游戏被称为$Anti SG$游戏。 有一个$SJ$定理是这
阅读全文
摘要:"bzoj" "luogu" sol 一条边出现在最小割集中的必要条件和充分条件。 先跑出任意一个最小割,然后在残余网络上跑出$scc$。 一条边$(u,v)$在最小割集中的必要条件:$bel[u]!=bel[v]$ 一条边$(u,v)$在最小割集中的充分条件:$bel[u]=bel[S],bel[
阅读全文
摘要:"vjudge" sol 最小割判定唯一性。 只要做完一个任意最小割后,判断一下是不是所有点都要么和$S$相连,要么和$T$相连。 只要两边各一次$dfs$就行了。 code cpp include include include include using namespace std; int g
阅读全文
摘要:"dbzoj" "luogu" sol 点分治+二分答案+单调队列。 点分,每次考虑所有过重心的路径,二分一个答案$mid$,给每条边的边权减掉一个$mid$后,满足条件的路径应该是长度介于$L$到$U$之间,且权值和大于等于$0$的。 先$bfs$一遍求出每个点到重心的路径的长度$dep$和路径权
阅读全文
摘要:"bzoj" "luogu" sol 显然你只会给每个地点的海拔设成$0$或$1$吧。 而且$0$和$1$还一定会是一个联通块。 所以题目相当于是要求送左上点到右下点的最小割。 类似 "bzoj1001狼抓兔子" ,把平面图最小割转化成对偶图最短路。 其实这个东西很好理解。把平面图和对偶图画出来,每
阅读全文
摘要:"bzoj" "luogu" 题意 求串$S$中所有回文串长度乘以该回文串出现次数的最大值。 sol 出现次数就是回文树上的子树$size$。 嗯做完了。 code
阅读全文
摘要:"bzoj" "luogu" 题面 给定n个模板串,以及m个查询串。 依次查询每一个查询串是多少个模板串的子串。 sol 广义后缀自动机裸题? 先建出$SAM$,然后记录一下每个节点分别在多少个模板串里出现过。 对于询问直接在$SAM$上跑匹配就行了。 code cpp include includ
阅读全文
摘要:"bzoj1396" "bzoj2865" "dbzoj1396" "dbzoj2865" 题面 XX在进行字符串研究的时候,遇到了一个十分棘手的问题。 在这个问题中,给定一个字符串$S$,与一个整数$K$,定义$S$的子串$T=S(i,j)$是关于第$K$位的识别子串,满足以下两个条件: 1、$i
阅读全文
摘要:"luogu" 题意 给定一个长度为$n$的数列,有$m$次询问,询问形如$\ l\ \ r\ \ k\ $ 要你在区间$[l,r]$内选一个长度为$k$的区间,求区间最小值的最大值 sol 二分一个最小值,把大于等于他的设成$1$,小于他的设成$0$。 那就只要查询区间$[l,r]$中是否存在一个
阅读全文
摘要:"bzoj" "luogu" 题意 有一个长度为$n$ 的序列,有三个操作: $I \ \ a\ b\ c\ :$表示将$[a,b]$这一段区间的元素集体增加$c$; $R \ \ a\ b\ :$表示将$[a,b]$区间内所有元素变成相反数; $Q \ \ a\ b\ c\ :$表示询问$[a,b
阅读全文
摘要:"bzoj" "luogu" sol 维护$\log{n}$个并查集,每个限制就行$ST$表那样分成两个区间然后合并。 接着把所有合并标记下方,最后就只要查第$0$个并查集里有几个代表元就好了。 code cpp include include using namespace std; int gi
阅读全文
摘要:"bzoj" "luogu" sol 首先考虑不加那条边怎么做吧。 只要给每个节点选定一个父亲(1号点除外),那么这棵树就可以被唯一确定。 很显然吧。 由于这是一个$DAG$,所以你不管怎么选父亲节点,都不会出现环。 所以在$DAG$上的答案就是$\prod_{i=1}^{n}du_i$。(你就当$
阅读全文
摘要:"bzoj" "luogu" sol 这才叫一眼题不接受任何形式的反驳。 对于前两种操作,肯定是维护全局是否被翻转,以及全局顺时针旋转了多少。 后面的都是线段树基本操作。 记得如果存在$rev$标记,在读入了$x,y$之后要把它们$swap$。 最后一种操作,答案就是 吗? 全部是一个颜色? 所以答
阅读全文
摘要:[luogu][1] 题意 求字符串中相交(含公共部分,所以包含也算相交)的回文子串的对数。 模一个并不是质数的数。 sol 正难则反吧。 总回文子串的个数就是回文树上的$\sum dep_i$ 所以总对数就是$\frac 12\sum dep_i (\sum dep_i 1)$ 然后就是要求不相交
阅读全文

浙公网安备 33010602011771号