A-Number Busters-推公式
- 当时,和都会减小,不会改变,所以只有在的时候,才会使和之间的距离缩短,所以我们知道这个状态共出现秒。
- 再来看b < x的时间,假设有k秒,且易知使c = a这个临界点出现的状态必然是b \geq x,此时(更新之后)b的值为b - x * (c - a) + k * (w - x),那么这个值还原回去(加上x)必须大于等于x。
- 由此得出方程
- 解出,再加上的时间,就是最终的答案
|
|
B-ZYB loves Xor I-分治
- 这里的的定义和我们以前知道的那个一样
- 网上的题解都是字典树,然而学艺不精
- 刘庆晖老师教导的分治的思维,让我看到了希望
- 对于一个数组,我们考虑它的最低位是否为1,可以分为两个集合,这两个集合中任意两个数做异或的结果的,都是1。
- 对于第一个集合,由于最低位相同(都是1),那么考虑第二位(次低位),按照上面的描述再次分为两个集合,那么这两个集合中任意两个数的异或的都是2。
- 对于第二个集合同理。
- 之后对于再次划分的集合我们发现依然可以这样分治下去。
- wow~
- 最后我们构造的就是一棵个节点的解答树
- 复杂度是
|
|
C-Wavy numbers-Q神代码
|
|
D-Bear and Floodlight-计算几何
- 只有20盏灯,所以可以考虑用状压dp,表示代表的状态(1表示亮)能走的最远距离
- 转移就是枚举剩下的未亮的灯,点亮后能走的距离。
- 对于状态点亮灯之后的状态分两种情况:
- 由的终点开始向照亮的范围,那么有
- 若该角度超过r,则取
|
|
E-Subway Innovation-前缀和优化+数学推导
- 如果这个点是按照坐标排好序的,那么我们很容易知道,两两距离之和最短的个点一定是连续的(反证一下即可)
- 首先用前缀和处理一下坐标的和,即表示前个点的坐标之和
- 令表示从开始的个点两两之间的距离之和,我们先求出
- 添加辅助函数表示前个点两两间的距离之和,有(从开始)
- 我们令
- 接下来推导的转移关系,可以看出到,多出了到的距离,减少了到的距离
|
|
F-Dexterina’s Lab-矩阵优化+概率dp
|
|
G-Count Good Substrings-机智
- 根据描述最后的串一定是abababa这个样子
- 若是回文串那么首尾字母一定相同
- 偶数长度的回文串的来源
- 一个奇数位置的a和一个偶数位置的a之间
- 一个奇数位置的b和一个偶数位置的b之间
- 奇数长度的回文串来源
- 任意位置的奇偶性相同的两个a或两个b之间的串
- 单一字符
|
|
H-Divisors-模拟
- 先预处理出的所有因子并且排序,再根据题目描述dfs模拟一下就行
- 注意对因子去重什么的,免得平方根因子不好搞
|
|
I-Painting Fence-分治
- 一个问题的定义,就是找到这个区间中的最短板,把这个长度以下部分横着刷,剩下的以他为中心分为两个区间,每个区间又是相同的子问题
|
|
头文件
|
|