04 2016 档案

该文被密码保护。
posted @ 2016-04-29 22:33 Ngshily 阅读(0) 评论(0) 推荐(0) 编辑
摘要:给出一个范围在[0,1e6]的数n,需要构造一个数m,使得m是n的倍数,m属于[0,1e16]且m包含[0,9]的所有数字 若不存在,输出-1 当n=0时输出-1 当n属于[1,1e6)时 m=(9876543210*1e5+n)-(9876543210*1e5+n)%n 这样,这个数的前10位不会 阅读全文
posted @ 2016-04-25 11:48 Ngshily 阅读(187) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2016-04-25 11:25 Ngshily 阅读(1) 评论(0) 推荐(0) 编辑
摘要:最少有几个人在说假话可以转化为最多有几个人在说真话 若一个人说的是真话,那么在分数升序排列后有且仅有第bi+1个人到第n-ai个人的分数与第i个人是相同的 所以我们得到结论,若几个人所说的话都是真话,那他们所表示的线段一定是不相交或重合的 且重合的线段个数小于等于线段长度 dp[i]表示到第i个人最 阅读全文
posted @ 2016-04-24 14:12 Ngshily 阅读(265) 评论(0) 推荐(1) 编辑
摘要:对于每一条询问,我们可以通过一个数组维护第一次匹配长度为i时的插入时间来计算在[l,r]中改变了多少遍 由于现在长度已经单调,选择会发生变化当且仅当时间也单调, 于是我们可以通过单调栈计算[1,x]中改变了多少遍 ans=solve(r)-solve(l-1) 对于多个询问,我们可以把询问插入tri 阅读全文
posted @ 2016-04-23 12:11 Ngshily 阅读(202) 评论(0) 推荐(0) 编辑
摘要:容易想到对于每一个询问,将所有a<=A&&b<=B的边加入,用并查集维护联通性,并且维护联通块中a,b的最大值, 最后判断u,v是否联通并且a,b 的最大值是否等于A,B即可 因为不要求是简单路径,所以这样做是可行的 然后对于多个询问我们可以对边按a值分块 对于每个块,选出属于该块的询问,即A值在该 阅读全文
posted @ 2016-04-22 20:03 Ngshily 阅读(396) 评论(0) 推荐(0) 编辑
摘要:本来想用树剖艹,然而并不会卡常数这种神奇的技能,,,于是还是乖乖写正解吧QAQ 我们可以把一个询问转化为二分判定性问题 二分答案$K$,若所有权值大于$K$的路径都经过询问点$x$,则答案比$K$小,否则答案比$K$大 对于多组询问,外层再套一个整体二分就行了 至于判断有几条路径经过点$x$,对于一 阅读全文
posted @ 2016-04-20 19:03 Ngshily 阅读(865) 评论(0) 推荐(0) 编辑
摘要:如何判断一个炒鸡大的数$n$能不能被另一个数$P$整除,,,我们有如下结论若$xmodP=a$,且$(n*10^{k}+x)modP=a$,$k$为$x$的长度,$gcd(P,10^{k})=1$那么$nmodP=0$ 胡乱证明分割线********** 因为$(n*10^{k}+x)modP=(( 阅读全文
posted @ 2016-04-19 21:07 Ngshily 阅读(658) 评论(0) 推荐(0) 编辑
摘要:给出一个序列,求某段区间的位置不同子串的最小值之和 对于前$40%$,我们可以$n^{2}$预处然后$O(n\sqrt{n})$ 预处理中$zzz[i][j]$表示以$i$开头,结尾最长到$j$的前缀子串的最小值之和 同理$fff[i][j]$表示倒过来的情况 考虑对预处理进行优化 对于一个区间$[ 阅读全文
posted @ 2016-04-19 18:39 Ngshily 阅读(805) 评论(0) 推荐(0) 编辑