04 2019 档案

摘要:考虑无修改怎么做。对于1~n的每个数,若其存在,将最后一个放在其值的位置,剩余在其前面依次排列,答案即为值域1~n上没有数的位置个数。带修改显然记一下偏移量线段树改一改就好了。 阅读全文
posted @ 2019-04-30 13:31 Gloid 阅读(178) 评论(0) 推荐(0)
摘要:A:奇偶配对。 B:从高位到低位考虑,每遇到一个0就考虑将其改成1,即如果该位之后全是0就改下一位,否则改这一位。 C:显然无论如何变化两者gcd一定是a-b的因子。确定gcd(是某数倍数)的情况下很容易求出最小k。枚举每个因子取最优解即可。 D:做法似乎非常多。考虑n++后树形态的变化。可以发现是 阅读全文
posted @ 2019-04-29 17:40 Gloid 阅读(172) 评论(0) 推荐(0)
摘要:A:暴力,显然每两次至少翻一倍。 B:列出柿子发现是二次函数。 C:考虑大小为i的点集有多大的概率是独立集,则要求其内部C(i,2)条边均被破坏,概率显然为(x/y)C(i,2),累加各大小点集贡献即可。 D:对于一个连通块的所有直径,其中点一定相同。考虑枚举中点,这个中点可以是某个点也可以是某条边 阅读全文
posted @ 2019-04-28 15:03 Gloid 阅读(216) 评论(0) 推荐(0)
摘要:突然发现上一场edu忘记写了( A:签到。 B:显然仅当最左为>或最右为<时才能消去整个字符串。于是找到最左的>和最右的<取min即可。 C:枚举beauty最小值,则显然应该选择beauty不小于该数的前k大。堆维护。 D:大胆猜想不用证明。即让1与所有相邻点配对。 E:不存在奇回文串的充要条件是 阅读全文
posted @ 2019-04-23 18:01 Gloid 阅读(178) 评论(0) 推荐(0)
摘要:A:找到两个相邻字符使后者小于前者即可。 B:设(n-11)/2=x,8的出现次数=y。显然x>=y时,后手一直拿8就可以阻止先手取胜。考虑x<y的情况,后手的最优策略仍然是一直拿最靠前的8,而先手应该拿最靠前的非8的数。于是找到第x+1个8的位置check一下。 C:a相邻作差取gcd,看b中是否 阅读全文
posted @ 2019-04-23 07:50 Gloid 阅读(458) 评论(5) 推荐(1)
摘要:A:签到。 B:显然可能的划分位置只有一个,找到后检验即可。 C:二进制分组。 D:不考虑范围限制的话显然能到达所有gcd(a,b)的倍数。注意到对于不小于a+b的gcd(a,b)的倍数,该点一定可以为到达该点时所经过的最大值。因为可以考虑每次若能往左走就往左走,否则往右走,显然这样往右走的时候所达 阅读全文
posted @ 2019-04-22 00:01 Gloid 阅读(368) 评论(0) 推荐(0)
摘要:C:即要使前一部分为白色后一部分为黑色,枚举分割点前缀和计算答案取min即可。 D:即要求最大的一组和小于总和一半的方案数。容易想到设f[i][j]为前i个数最大一组(不是当前最大的一组,而是我们期望所有数分配完之后其成为最大的一组)和为j时的方案数。为保证第二维中的是最大的一组,做一个补集转化。d 阅读全文
posted @ 2019-04-20 22:49 Gloid 阅读(246) 评论(0) 推荐(0)
摘要:显然可以用可持久化并查集实现。考虑更简单的做法。如果没有撤销操作,用带撤销并查集暴力模拟即可,复杂度显然可以均摊。加上撤销操作,删除操作的复杂度不再能均摊,但注意到我们在删除时就可以知道他会不会被撤销,所以遇到一个要被撤销的删除操作时,直接求出去掉k条边后的MST即可。 阅读全文
posted @ 2019-04-19 21:14 Gloid 阅读(218) 评论(0) 推荐(0)
摘要:A:随便怎么暴力。 B:显然选择单字符子串能形成n种不同的串。容易发现其他方案一定是由进位产生的,考虑固定某个9为子串右端点会产生多少种方案。数一下由其往前有多少个连续的9,这一段的每个后缀都会产生一种方案。然后再往前看一个数,若不为0答案再+1;若为0,由于所选串不能有前置0,需要找一下之前有没有 阅读全文
posted @ 2019-04-18 21:18 Gloid 阅读(318) 评论(0) 推荐(0)
摘要:https://www.cnblogs.com/Gloid/p/10629779.html 这一场的D。 阅读全文
posted @ 2019-04-17 21:47 Gloid 阅读(210) 评论(0) 推荐(0)
摘要:https://www.cnblogs.com/Gloid/p/9412357.html差分一下是一样的问题。感觉几年没写过树剖了。 阅读全文
posted @ 2019-04-17 21:39 Gloid 阅读(172) 评论(0) 推荐(0)
摘要:本以为是个二进制分组傻逼题https://www.cnblogs.com/Gloid/p/9545753.html,实际上有神仙的一个log做法https://www.cnblogs.com/asuldb/p/10721251.html。下面代码是二进制分组的。 阅读全文
posted @ 2019-04-17 18:28 Gloid 阅读(250) 评论(0) 推荐(0)
摘要:C:显然每p2个数会有一个0循环,其中22 32 52 72的循环会在200个数中出现,找到p2循环的位置就可以知道首位在模p2意义下是多少,并且循环位置几乎是唯一的(对72不满足但可能的位置也很少)。于是这样枚举范围就直接从1e9变成了1e9/44100。然后考虑暴力求μ验证,求μ可以以O(n1/ 阅读全文
posted @ 2019-04-16 21:49 Gloid 阅读(579) 评论(0) 推荐(0)
摘要:A:签到。没仔细看数据范围,看到一个O(nt)的差点叉上去了。 B:从大到小考虑每个数,放在所有能放但还没有放的位置上即可。 C:在右括号够的情况下尽量放左括号。 D:这种东西容易想到二分答案,转化成01问题后,设f[i]为要让i号点为1其子树内至少有几个叶子为1,转移显然。dp完之后可以发现压根不 阅读全文
posted @ 2019-04-14 12:37 Gloid 阅读(406) 评论(0) 推荐(0)
摘要:显然优先级越高完成的越早,二分答案后用堆模拟就是O(nlog2n)的。考虑去一个log。先固定特殊题的优先级为最低,模拟一遍。这样在特殊题被扔过来到T的这段时间内,如果将特殊题的优先级提高至超过这其中某些时间段所做的题,这些时间就会空出来变为做特殊题。所以从小到大枚举优先级,直到空出来的时间恰好与做 阅读全文
posted @ 2019-04-14 11:00 Gloid 阅读(320) 评论(0) 推荐(0)
摘要:A:答案一定包含首位或末位。 B:二分答案,大的匹配大的即可。 C:显然将两矩阵xor一下后相当于将矩阵变为全0矩阵,大胆猜想要求每行每列都有偶数个1即可。 D:显然询问的答案只与长度有关,离线按长度从小到大排序,相当于一个不断合并间隙的过程,将间隙长度排序记录已经有多少个被填满即可。 E:显然三角 阅读全文
posted @ 2019-04-12 18:37 Gloid 阅读(297) 评论(0) 推荐(0)
摘要:https://www.cnblogs.com/AwD-/p/6600650.html 阅读全文
posted @ 2019-04-12 18:23 Gloid 阅读(305) 评论(0) 推荐(0)
摘要:容易发现最终序列所有数字的相对顺序不变,一个数字可能的覆盖范围由两边第一个比它大的数决定,且若不考虑次数限制所有这样的序列都可以变换得到。对于一个序列,其需要的最少变换次数显然就是覆盖了别的位置的数的种数。于是设f[i][j][k][0/1]为第i位填了第j个数时以最优策略操作了k次,第i-1为是否 阅读全文
posted @ 2019-04-11 22:41 Gloid 阅读(172) 评论(0) 推荐(0)
摘要:将选择导师看成先选阵营再选派系,这样有显然的O(nm2)暴力,即按城市排序后,设f[i][j][k]为前i个学校中第一个阵营有j人第一个派系有k人的方案数,暴力背包。 对于k=0,可以发现选阵营和选派系是两个独立的过程。于是O(nm)暴力背包再将方案数相乘即可。 考虑原题,注意到如果一个城市不包含有 阅读全文
posted @ 2019-04-10 20:51 Gloid 阅读(237) 评论(0) 推荐(0)
摘要:考虑链的做法,显然将两部分各自从大到小排序后逐位取max即可,最后将根计入。猜想树上做法相同,即按上述方式逐个合并子树,最后加入根。用multiset启发式合并即可维护。因为每次合并后较小集合会消失,总复杂度O(nlogn)。场上并没有被启发得到这个优美的贪心。 阅读全文
posted @ 2019-04-09 21:30 Gloid 阅读(161) 评论(0) 推荐(0)
摘要:做前缀异或和,用堆维护一个五元组(x,l,r,p,v),x为区间右端点的值,l~r为区间左端点的范围,p为x在l~r中最大异或和的位置,v为该最大异或和,每次从堆中取出v最大的元素,以p为界将其切成两部分重新扔进堆即可。查询一个值在一个区间中的最大异或和用可持久化trie实现。luogu上T掉了。 阅读全文
posted @ 2019-04-09 21:26 Gloid 阅读(186) 评论(0) 推荐(0)
摘要:先考虑80分做法,即满足A串长度均不小于B串,容易发现每个B串对应的所有A串在后缀数组上都是一段连续区间,线段树优化连边然后判环求最长链即可。场上就写了这个。 100分也没有什么本质区别,没有A串长度不小于B串的性质后,区间连边变成了矩形连边,用主席树或KDTree优化连边即可,当然主席树会更靠谱, 阅读全文
posted @ 2019-04-09 21:02 Gloid 阅读(315) 评论(0) 推荐(0)
摘要:我也想退役失败.jpg Day 0 我才知道联考原来是4.5h? 下午居然还有讲题,感觉变得正规多了。 试机敲了LCT,NTT,SA,加起来花了大概40min,基本1A,感觉海星。键盘似乎有点过于灵敏。gedit根本不知道怎么调自动缩进,有点难受。以及在考场总是有种昏昏沉沉的感觉。 翻了翻自己博客, 阅读全文
posted @ 2019-04-05 15:03 Gloid 阅读(1326) 评论(1) 推荐(0)
摘要:设f[S]为S点集是SCC的方案数。考虑通过去掉不合法方案转移。可以枚举入度为0的SCC所含点集S',这样显然S^S'内部的边和由S'连向S^S'的边删还是不删任选。但是这样无法保证S'包含所有入度为0的SCC,于是考虑容斥,瞎猜可以得到容斥系数与SCC数量有关,于是设g[i][S]为S包含i个无关 阅读全文
posted @ 2019-04-04 00:32 Gloid 阅读(295) 评论(0) 推荐(0)
摘要:https://www.luogu.org/problemnew/solution/P4002 神树的题解写的很清楚了。稍微补充: 1.[x^i]ln(A(ax))=a^i[x^i]ln(A(x)),感觉直接证并非那么显然,大约是先求出多项式再把ax作为自变量带回去。 2.最后一句中的式子,即考虑由 阅读全文
posted @ 2019-04-03 17:58 Gloid 阅读(414) 评论(0) 推荐(0)
摘要:容易发现相当于求2m种操作序列所得的每种线段树tag数量之和。显然考虑每个点的贡献,也即有多少种方案会使该点上有tag。可以将点分为四类: 1.修改时被经过且有儿子被修改的节点 2.修改时被经过且没有儿子被修改的节点 3.修改时未被经过且有兄弟被修改的节点 4.修改时未被经过且没有兄弟被修改的节点 阅读全文
posted @ 2019-04-03 00:33 Gloid 阅读(188) 评论(0) 推荐(0)
摘要:A(x)k=eklnA(x)。泰勒展开之后容易发现k并非在指数上,所以对p取模。 阅读全文
posted @ 2019-04-01 16:36 Gloid 阅读(218) 评论(0) 推荐(0)
摘要:线段树每个节点维护(A,B,C,len)向量,操作即是将其乘上一个矩阵。 阅读全文
posted @ 2019-04-01 14:51 Gloid 阅读(302) 评论(0) 推荐(0)
摘要:按位贪心,以当前考虑位是0还是1将数分成两部分,则MST中这两部分之间只会存在一条边,因为一旦有两条或以上的边,考虑两条边在原图中所成的环,显然这两条边有一条是环上的权值最大边,不会出现在MST中。则建出trie后每次分治时用数较少的部分在trie上贪心求出边的最小权值即可。 阅读全文
posted @ 2019-04-01 13:01 Gloid 阅读(365) 评论(0) 推荐(0)
摘要:A:化成x-√n=y+z-√4yz的形式,则显然n是完全平方数时有无数组解,否则要求n=4yz,暴力枚举n的因数即可。注意判断根号下是否不小于0。 B:f[i][j][k]表示第i步后左边有j个已访问城市右边有k个已访问城市的概率,转移显然。虽然是在一个环上,但不看成环也没有问题,最后对n取min即 阅读全文
posted @ 2019-04-01 11:26 Gloid 阅读(551) 评论(4) 推荐(1)