摘要:
最少有几个人在说假话可以转化为最多有几个人在说真话 若一个人说的是真话,那么在分数升序排列后有且仅有第bi+1个人到第n-ai个人的分数与第i个人是相同的 所以我们得到结论,若几个人所说的话都是真话,那他们所表示的线段一定是不相交或重合的 且重合的线段个数小于等于线段长度 dp[i]表示到第i个人最 阅读全文
摘要:
对于每一条询问,我们可以通过一个数组维护第一次匹配长度为i时的插入时间来计算在[l,r]中改变了多少遍 由于现在长度已经单调,选择会发生变化当且仅当时间也单调, 于是我们可以通过单调栈计算[1,x]中改变了多少遍 ans=solve(r)-solve(l-1) 对于多个询问,我们可以把询问插入tri 阅读全文
摘要:
容易想到对于每一个询问,将所有a<=A&&b<=B的边加入,用并查集维护联通性,并且维护联通块中a,b的最大值, 最后判断u,v是否联通并且a,b 的最大值是否等于A,B即可 因为不要求是简单路径,所以这样做是可行的 然后对于多个询问我们可以对边按a值分块 对于每个块,选出属于该块的询问,即A值在该 阅读全文
摘要:
本来想用树剖艹,然而并不会卡常数这种神奇的技能,,,于是还是乖乖写正解吧QAQ 我们可以把一个询问转化为二分判定性问题 二分答案$K$,若所有权值大于$K$的路径都经过询问点$x$,则答案比$K$小,否则答案比$K$大 对于多组询问,外层再套一个整体二分就行了 至于判断有几条路径经过点$x$,对于一 阅读全文
摘要:
如何判断一个炒鸡大的数$n$能不能被另一个数$P$整除,,,我们有如下结论若$xmodP=a$,且$(n*10^{k}+x)modP=a$,$k$为$x$的长度,$gcd(P,10^{k})=1$那么$nmodP=0$ 胡乱证明分割线********** 因为$(n*10^{k}+x)modP=(( 阅读全文
摘要:
给出一个序列,求某段区间的位置不同子串的最小值之和 对于前$40%$,我们可以$n^{2}$预处然后$O(n\sqrt{n})$ 预处理中$zzz[i][j]$表示以$i$开头,结尾最长到$j$的前缀子串的最小值之和 同理$fff[i][j]$表示倒过来的情况 考虑对预处理进行优化 对于一个区间$[ 阅读全文
摘要:
http://blog.miskcoo.com/2015/04/polynomial-multiplication-and-fast-fourier-transform#i-15 uoj#34 1 #include<bits/stdc++.h> 2 using namespace std; 3 #d 阅读全文
摘要:
%%%VFK,神建图 题目要求“半空的”筐子数最多 我们把每个筐子拆成3个槽,两两连边,形成一个三元环。然后对读入的可行配对,由小球分别向三个筐子连边。 进行匹配时我们发现,三元环内会形成一条匹配边,当且仅当筐子为“半空的”。 这样就转化成了一般图最大匹配,Ans=最大匹配-n 学习了一个带花树 1 阅读全文
摘要:
对于一个乱七八糟的位运算,我们可以通过真值表及它的性质把它转化普通的位运算 通过题目就可以看出$A nand B=not (A and B)$ 所以 $not A=A nand A$ $A and B=not (A nand B)$ $A or B=not ((not A) an... 阅读全文
摘要:
jzojAC无能,只能在bzoj上心灵AC首先先把所有字符串哈希掉,然而$2*10^{8}$开不下数组,只能上vector对于每组数据,我们分两种情况考虑 ①所有字符串都有$*$ 对于这种情况,我们只需要让所有字符串的前缀后缀相等就可以了,因为通配符一定会使各串匹配 至于如何比较,我们... 阅读全文