上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 37 下一页
摘要: 首先考虑由$1!,2!,...,n!$所构成的虚树的一些性质: 1.每一个子树内所包含的阶乘的节点都是一个连续的区间(证明:对于子树k,如果存在$x!$和$y!$,即说明$x!$和$y!$的前$\delta(1,k)$大质因子相同,那么$z\in [x,y]$一定有$x! | z!|y!$,所以z! 阅读全文
posted @ 2020-07-15 21:26 PYWBKTDA 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 由于n较大,可以将n个数中的关系对数量记录在$m*m$的矩阵中,记作$a[i][j]$ 考虑朴素的状压dp枚举排列,即$f[i]$表示以i中的数的一种排列为整个序列的前缀的最小代价,然后转移枚举下一个数j以及与其相关的数k,那么有转移$f[i|j]=\min(f[i]+(|i|+1)(\sum_{k 阅读全文
posted @ 2020-07-14 09:30 PYWBKTDA 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 将$n+1$个数字(还有0)标号为$[0,n]$,那么定义$a_{i,j}$表示第j个数上第i位上的值,如果第$i-1$个数与第$i$个数之间的运算符为与,那么令$b_{i}=1$,否则$b_{i}=0$,特别的,$b_{0}=1$(因此很明显有$b_{0}\ne a_{0,0}$,即$b\ne a 阅读全文
posted @ 2020-07-12 09:05 PYWBKTDA 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 考虑把每一个区间单独统计,令$f[i]$表示第i个区间有标记的次数,$g[i]$表示第i个区间及其祖先中存在标记的次数,然后对于操作将所有区间分为5类(T为已执行操作个数): 1.被修改,那么$f[i]+=2^{T}$,$g[i]+=2^{T}$(定义修改为执行了$tag=1$) 2.被经过,$f[ 阅读全文
posted @ 2020-06-27 14:30 PYWBKTDA 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 建立SAM,求出每一个节点最左边的出现位置(即right集合中的最小元素,在树上dfs即可) 枚举左端点i和右端点j(保证j是最小的满足$s[i,j)$不是$s[0,i)$的子串),维护k表示$s[i,j)$所对应的位置,$i+1$可以通过找到$nex[k]$来实现,$j+1$直接在SAM上走即可, 阅读全文
posted @ 2020-06-20 06:47 PYWBKTDA 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 令$a_{i,j}(j\le i)$表示第i个人的方案中给第j个人$a_{i,j}$的钱,有以下性质: 1.如果第j个人一定同意(否则就会死)第i个人的方案,那么$a_{i,j}=0$(容易发现一定同意的人就是在上一个不是-1之后的人) 2.否则$a_{i,j}=1+\max_{1\le t<i}a 阅读全文
posted @ 2020-06-18 18:25 PYWBKTDA 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 定义S对应的数组为$a_{i}=\min_{0\le j<i,S_{j}=S_{i}}i-j$,特别的,若不存在j,令$a_{i}=i$,那么容易发现存在双射关系就意味这两者对应的数组相同 因此,考虑需要单词为$a_{i}$,询问串对应的为$b_{i}$,那么如果$b[i,i+l_{a})$与$a$ 阅读全文
posted @ 2020-06-16 16:24 PYWBKTDA 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 根据$[WC2011]XOR$的思路,每次暴力重构线性基,令$l'=\frac{l^{2}}{w}$,则有一个$nql'$的做法(这里线性基位数很多,所以要用bitset) 由于初始连通,因此每一个环一定可以由若干个[树边+1条非树边]的环构成(构成指异或),那么预处理出每一个操作的环大小,相当于维 阅读全文
posted @ 2020-06-14 22:20 PYWBKTDA 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 容易想到树套树,但数据范围太大,会超时 考虑平衡树的作用,就是将这个区间内的所有数排序,所以可以离线+归并来处理,预处理复杂度$o(n\log n)$,然后考虑维护:1.删除;2.询问 删除操作维护可以使用并查集,可以通过$\alpha(n)$的时间里快速找到每一个点的上和下元素 询问操作可以二分查 阅读全文
posted @ 2020-06-10 22:02 PYWBKTDA 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 以统计x坐标的数量为例:x为下标建一棵线段树,然后对每一个区间按照y坐标建一棵可持久化线段树(每一个x只保留最大的一个y),询问时,二分找到这个区间内最大的y以前的点并统计,复杂度为$o(nlog^{2}n)$ 还有一种做法是bitset+分块,预处理出:1.第i个块到第j个块的bitdet;2.每 阅读全文
posted @ 2020-06-10 14:13 PYWBKTDA 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 枚举T中失配的位置i,容易发现能够成立当且仅当存在一个以$T[0,i)$为后缀的前缀$S[0,a)$且$T(i,|T|)$是$S(a,|S|)$的一个前缀 考虑建立S的正序和倒序的两个后缀自动机,设$T[0,i)$对应点x(正序自动机中),$T(i,|T|)$对应点y(倒序自动机中),那么必然有$a 阅读全文
posted @ 2020-06-09 17:49 PYWBKTDA 阅读(148) 评论(0) 推荐(1) 编辑
摘要: 先离散,然后将黑的看成1,白的看成-1,对整个序列差分,所有区间建为$(l,r+1)$的无向边,并标上-1和1,每一个点的前缀和即为该点的值 考虑什么情况下能够使得所有点都是0:当且仅当每一个点的度数都为偶数(证明:必要性,由于所有点奇偶性相同,因此比然要有偶数条边;必要性:每一个连通块都存在一个欧 阅读全文
posted @ 2020-06-08 19:42 PYWBKTDA 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 首先注意题目中的一些细节问题:1.同一个区间不能累加;2.每一种寿司才能提供$x$的代价;3.每一种代号的寿司才能贡献$mx^{2}$的代价 这些就很好的为最小割提供了条件,考虑最大权闭合子图的建图: 1.$(S,id(i,j),d[i][j])(d[i][j]\ge 0)$,$(id(i,j),T 阅读全文
posted @ 2020-06-04 21:20 PYWBKTDA 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 原题等价于选择恰好$k+1$条不相交(无公共点)的路径使得边权和最大 证明:对于原题中的最优解,一定包含了k条0边权的边(否则可以将未使用的边删掉,然后将这条路径的末尾与不在同一个连通块内的点连边),那么选择这k条0边权的边所划分的$k+1$条路径即可;对于这$k+1$条路径,将每一条路径首尾连0边 阅读全文
posted @ 2020-05-27 13:19 PYWBKTDA 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 考虑依次选择每一位考生,设当前选到第$i+1$位,前i个分别为$p1,p2,……pi$(注意:这里只确定了导师的志愿编号),然后枚举第$p_{i+1}$,通过网络流建图+判定,复杂度为$o(nm*f(n+m,cn))$($f(n,m)$表示点数为n、边数为m的网络流),无法通过 考虑优化,由于网络流 阅读全文
posted @ 2020-05-21 18:22 PYWBKTDA 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 容易发现答案即$\sum_{S}\sum_{u=1}^{W}[u\le val(S)]=\sum_{u=1}^{W}\sum_{S}[u\le val(S)]$,那么可以枚举权值$u$,并将点权$val<u$的点标为0,$u\le val$的点标为1,相当于统计大于等于k个1的连通子图个数 考虑dp 阅读全文
posted @ 2020-05-20 13:30 PYWBKTDA 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 对所有23操作建立一个序列,问题即求一个点经过一段连续操作后的结果 建立线段树并将询问离线,考虑线段树上每一个节点,即是没有1操作且4操作均在末尾的子问题 (保证操作总数为$o(q\log q)$,即区间长度+拆分到此区间的询问数) 对于第$i$个操作,记$p_{i}\in \{0,1\}$为操作类 阅读全文
posted @ 2020-05-09 07:10 PYWBKTDA 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 考虑将所有A串向所能支配的B串连边,B串向满足B串是A串前缀的A串连边,在A串上有点权,跑最长路即可但这样前缀的边太多,考虑优化:在后缀树上,将这些串插入进去(注意相同的串A串要在B串下面),并将父亲向儿子连边,那么相当于实现了上面的问题但这样还有一个问题:需要将所有A串裂为两个点,因为并不是经过A 阅读全文
posted @ 2020-05-09 07:08 PYWBKTDA 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 对于2操作,如果把这些操作看成边,那么对于某一个连通块内的若干个点,满足权值可以任意分配(证明:归纳,若n个点可以,那么先将新增的点调整好,再对原来n个点重新分配即可),因此可以将原图缩点,并将连通块的和作为新的权值1操作比较复杂,同样把其当成边连起来,形成一张图(包括自环),然后考虑图中的一个连通 阅读全文
posted @ 2020-03-31 20:58 PYWBKTDA 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 先对其求出前缀异或和,然后$o(k)$次枚举,每次选择最大值,考虑如何维护可以全局开一个堆,维护出每一个点的最大值的最大值,那么相当于要在一个点中删去一个点再找到最大值将这些删去的点重新建成一颗trie树,与所有数构成的trie树减一下,就可以找到新的最大值了,再用堆维护即可有一些细节:1.数值范围 阅读全文
posted @ 2020-03-26 20:55 PYWBKTDA 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 首先有一个暴力的做法,将任意两个点判断,可以得到与之相关的1或3只变色龙:1只是两只变色龙相互喜欢,那么剩下那只就是颜色相同;3只从3只选2只并和自己判断一次,结果为1的那次剩下的那个就是他喜欢的,然后将所有喜欢关系删掉后剩下的就是颜色相同但这样一开始需要$o(n^2)$次的判断,考虑优化,如果将点 阅读全文
posted @ 2020-03-26 16:21 PYWBKTDA 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 首先朴素dp的方程,即$f[i][j]=max(f[i][j-1],f[i-1][j],(a[i]==b[j])*(f[i-1][j-1]+1))$,这中间特殊的转移只在a[i]=b[j]时,而在这道题中与a[i]相等的b[j]只有5个,考虑利用这一性质先预处理每一种数的位置,在枚举i的同时,用线段 阅读全文
posted @ 2020-03-14 17:19 PYWBKTDA 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 首先可以将期望转换为$\sum_{i=0}^{inf}P(i)$,其中P(i)表示i轮后还没有结束的概率,通过对i轮后的结果容斥,可以得到$P(i)=\sum_{j=0}^{2^{n}-2}(\sum_{k|j=j}p_{k})^{i}*(-1)^{n-|j|-1}$对i累加后,发现即$\sum_{ 阅读全文
posted @ 2020-02-29 11:44 PYWBKTDA 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 如果将关系用一个数字来表示(相等表示不确定),那么题目相当于要计算$1324-1243-1432$=$(1323-1423)-(1233-1234)-(1322-1423)$=$1323+1234-(1322+1233)$=$1323+1234-1222-(1324+1342)$先预处理出li表示i 阅读全文
posted @ 2020-02-23 11:55 PYWBKTDA 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 考虑一个位置的上界,即$bi=min(c_{i-k+1},c_{i-k+2},……,ci)$,那么每一个位置有两种方式:1.达到上界;2.未达到上界那么可以将权值相同的ci和bi提出来,由于权值不同的ci是独立的,因此直接将每一个的方案数乘起来即可提出来以后,问题转化为每一个bi可以覆盖提出来的ci 阅读全文
posted @ 2020-02-13 21:27 PYWBKTDA 阅读(153) 评论(0) 推荐(0) 编辑
上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 37 下一页