随笔分类 - 比赛
摘要:A:暴力从小到大枚举判断。 B:显然max-min<=2k时有解,最优解为min+k。 C:一点脑子都不想动可以二分答案。 D、E:跳过。 F:当只要求选择两个数时,显然选择最大值及最大的不是其因子的数最优。因为假设次大值是最大值的因子,那么次大值<=最大值/2,如果不选择最大值,两个数的和一定不大
阅读全文
摘要:A:n-1次操作后最大值会被放到第一个,于是暴力模拟前n-1次,之后显然是循环的。 B:考虑一维的构造,每次取两边端点即可。拓展到二维,对行仍然使用一维情况下的构造方法,当然端点需要交替重复几次以取遍所有点。对列的构造相当于这样一个问题:1~n每个数各给2个,找一个排列使得差分序列不存在相同的数。可
阅读全文
摘要:没有找到这场div3被改成div2的理由。 A:签到。 B:随便做? C:显然应该先删权值大的。注意到值域只有100,于是记录每个权值出现次数从大到小删直到满足条件即可。 D:判一下删第一个数或删第二个数可不可行。不行的话公差就被固定下来,直接check。 E:找到每种字母最左上和最右下出现位置。然
阅读全文
摘要:A:签到。 B:显然在中间截比较优。于是就找到在左侧和在右侧的最靠近中点的切割点。注意不能有前导0。高精加即可。 C:每个点处理出该列中以该位置为起点形成的三段是什么样子的。注意第三段长度对第二段取min。然后枚举每一行,找到三段相同且合法的子段计算贡献即可。 D:可以首先对每个询问二分出该次要加的
阅读全文
摘要:A:签到。 B:若将所有差是(p,q)的点对连接起来,显然会得到若干条链,链的数量即为答案。于是只要统计每种差的出现次数即可。 C:显然应该尽量加正数减负数。但同时容易发现至少有一个数要被减掉,至少有一个数要被加上,所以均为正数或均为负数时稍微修改一下。不妨设是排序后要将前p个数减掉,其他数加上。那
阅读全文
摘要:A:n是奇数无解,是偶数为2n/2。 B:随便做。 C:码码码。求出每个单词元音个数及最后一个元音。然后看只考虑第二列单词的话最多能配多少对。最后把一些第二列中的单词移到第一列即可。 D:有各种麻烦的做法。sol的做法似乎比较清真。找到一条直径。直径的两端点可能恰好有一个可以作为根,先check一下
阅读全文
摘要:A:显然能除就除。 B:栈维护。 C:枚举每个长度为k的子段取两端点距离/2(向上取整)更新答案即可。因为显然对于一个固定点,要找k个点使得离它的最远点最近,一定是k个点连成一个子段最优。于是可以反过来对每个子段求最优点。 D:将后缀和排序,取整个序列及除此之外最优的k-1个后缀。 E:对每个点求出
阅读全文
摘要:A:显然排序即可。 B:若奇偶数均存在就可以任意交换,sort即可。否则无法改变。 C:质数下标之间需要两两不同,于是最大值就是<=n的质数个数。对于合数,将其设为其最小质因子对应的数即可。 D:如果m>=2n即没有限制,使序列前缀和依次为0,1,2……即可。否则这些数中有一半不能选择,做法类似。
阅读全文
摘要:A:如果C在D左侧,显然先让B到达终点再让A走即可,否则先判断一下A是否可以在某处超过B。也就是先判断一下起点与终点之间是否有连续的障碍,若有则无解;然后若C在D左侧输出Yes,否则判断B和D之间是否有存在某个空地其左右均为空地,若有则输出Yes,否则输出No。 B:考虑每个BC能与哪些A一起做出贡
阅读全文
摘要:A:签到。我wa了一发怎么办啊。 B:签到。 C:考虑枚举最后两人各胜多少局。注意到期望每100/(100-C)局就会决出一次胜负,于是只需要考虑该种胜负局数出现概率。不妨设第一个人赢了n场输了x场,那么概率就是C(n+x-1,n-1)·An·Bx/(A+B)n+x,累加即可。 D:大胆猜想从小到大
阅读全文
摘要:A:签到。 B:k是奇数时函数值均为1,k是偶数时每k+1个出现一个0。 C:暴力枚举横竖各切多少刀,将矩阵压成一行可以得到该情况下列的划分位置,压成一列可以得到该情况下行的划分位置,然后二维前缀和暴力验证即可。 D:打表可知10k~10k+9范围内0~9各出现一次,于是只需要计算零散部分。 先咕着
阅读全文
摘要:A:签到。 B:太难了吧。注意到任意两数乘积不同。于是考虑问出12乘积、34乘积,由此已经可知56乘积。然后需要确定每一对的顺序,可以询问13得到13的值,再询问15得到5的值。 C:并查集。 D:贪心。左括号分给当前前缀和小的,右括号分给当前前缀和大的。 E:对于确定的右端点r,显然合法的l是一段
阅读全文
摘要:A:签到。 B:签到。背包。 C:太难了吧。先统计一下内部的AB,然后只留下首尾两字符,显然只有BB、AA、BA是有用的。把BA全部接起来,相当于至多剩下一个BA,将其接在BB前或者AA后。AABB两两配对。 D:设n=km+x(0<x<m)。则[n/m]=n%m即k=n-km k(m+1)=n 枚
阅读全文
摘要:A:签到。 B:找到第一个和最后一个有1的列,状压dp一下即可,即设f[i][0/1][0/1]为第i列为0/1,0/1时的最优方案要加多少个1。 C:容易发现子序列中一个数的贡献是2l,而只需要考虑其是否是m的倍数,于是l超过logm后就没什么意义了。于是设f[i][j][k]为前i个数选了模m为
阅读全文
摘要:A:开场就读错题。读对了之后也没啥好说的。 B:swap(1B,1D)。花了1h+仍然没有比暴力更好的做法,于是信仰交了暴力神tmpp了,最后居然似乎是因为用了map或者randomshuffle而fst,更加纯粹的暴力反而过了。无法想到的结论是,如果有解,一定存在某个解k是n的因子。考虑反证,如果
阅读全文
摘要:A:注意到2和两个1几乎没有差别,因为除2外的偶数都不是质数。于是最开始放一个2,然后放奇数个1,再把2放完,最后若有1再排在最后即可。 B:考虑单组询问怎么做。设f[a][b][c]为最短的前缀长度满足能从中挑出第一种宗教的前a位、第二种宗教的前b位、第三种宗教的前c位。转移考虑最后一个被挑出的字
阅读全文
摘要:A:奇偶配对。 B:从高位到低位考虑,每遇到一个0就考虑将其改成1,即如果该位之后全是0就改下一位,否则改这一位。 C:显然无论如何变化两者gcd一定是a-b的因子。确定gcd(是某数倍数)的情况下很容易求出最小k。枚举每个因子取最优解即可。 D:做法似乎非常多。考虑n++后树形态的变化。可以发现是
阅读全文
摘要:A:暴力,显然每两次至少翻一倍。 B:列出柿子发现是二次函数。 C:考虑大小为i的点集有多大的概率是独立集,则要求其内部C(i,2)条边均被破坏,概率显然为(x/y)C(i,2),累加各大小点集贡献即可。 D:对于一个连通块的所有直径,其中点一定相同。考虑枚举中点,这个中点可以是某个点也可以是某条边
阅读全文
摘要:突然发现上一场edu忘记写了( A:签到。 B:显然仅当最左为>或最右为<时才能消去整个字符串。于是找到最左的>和最右的<取min即可。 C:枚举beauty最小值,则显然应该选择beauty不小于该数的前k大。堆维护。 D:大胆猜想不用证明。即让1与所有相邻点配对。 E:不存在奇回文串的充要条件是
阅读全文
摘要:A:找到两个相邻字符使后者小于前者即可。 B:设(n-11)/2=x,8的出现次数=y。显然x>=y时,后手一直拿8就可以阻止先手取胜。考虑x<y的情况,后手的最优策略仍然是一直拿最靠前的8,而先手应该拿最靠前的非8的数。于是找到第x+1个8的位置check一下。 C:a相邻作差取gcd,看b中是否
阅读全文