这次的题目背景大部分是vfleaking写的。
出题人 01,02,03 只是主人公的名字,和真实出题人没有任何的关系。
序列妙妙值
from zhouyuyang,数据、标程、题解 by zhouyuyang。
由于是 D1T1 ,为了让参赛的选手分数都好看一点,数据相对来说造的没有那么强。
算法1
我会暴力!
设
转移直接枚举新的右端点即可。
使用前缀异或和优化后时间复杂度为
期望得分:
算法2
我会优化暴力!
当
转移时枚举上一个端点对应的前缀异或和即可。
设
期望得分:
结合算法1期望得分
算法3
不难发现对于算法2,我们可以实现
在修改时,我们枚举二进制下较高的
在询问时,我们枚举二进制下较低的
不难发现,这样转移和算法2中的等价。
时间复杂度
期望得分:
其他算法
考虑序列分块,块内暴力转移,块之间采用fmt的思路转移,时间复杂度
可以尝试只枚举xor和前
可以尝试在
网络恢复
from Aprilgrimoire,数据、标程、题解 by Aprilgrimoire。
做法一
令所有的
询问次数:
期望得分:
做法二
每次取出
询问次数:
期望得分:
做法三
测试点
询问次数:
期望得分:
做法四
测试点
询问次数:
期望得分:
做法五
每轮随机取出一些边,只考虑被取出的边。每条边在不同的轮中可以被重复取出。使用做法三的方法持续找出度为
虽然不知道为什么但是效果还不错。
询问次数:
期望的分:
做法六
将所有的边随机分成
虽然不知道为什么但是对于随机数据效果挺好的。
询问次数:
期望得分:
校园闲逛
from zhouyuyang,数据、标程、题解 by zhouyuyang。
本题idea来自于【CTSC2016】NOIP十合一的测试点
出题人没打算把FFT的常数卡到死,被喷卡常题,然后就被分治干过去了...
算法-1
暴力DP计算方案数即可。
时间复杂度
期望得分
算法0
使用分治fft优化暴力计算的过程。
时间复杂度
转移时利用点值的性质可以做到
期望得分
同样是算法0,为什么有人20,有人100...
选手卡常水平高超,实在打不过...告辞...
算法1
确定起点时可以列出关于答案的生成函数的方程组:
假设
设节点数为3,起点为1。则可以列出如下方程组。
类似于高斯消元的思路,我们可以每次找到唯一一个常数项非
解到最后会得到若干个
对于每个起点运行消元即可。
时间复杂度
期望得分
算法2
观察不同起点时的矩阵,不难发现方程组本质只有最后一列的常数项上存在区别,其余各项均没有区别。
因此类比于解逆矩阵,我们可以同时解这
时间复杂度
期望得分
算法3
在维护高斯消元的系数的时候,仍然可以使用点值加速高斯消元系数的维护。
我们只需要在询问当前元素的值的时候进行一次IDFT,其余时间全部使用点值维护修改量即可。
时间复杂度
期望得分
由于算法
其他算法
如果利用FFT的点值,不要每次都暴力分治也可以过。复杂度可以和算法3一样。
如果在转移的时候利用转移系数加速分治过程也可以过。复杂度可以和算法3一样。
如果你分治常数足够小,应该可以卡着时间限制过去。