SDU暑期集训排位(8)
A. A Giveaway
签到
B. Game of XOR
做法
- dp[G][L][R]表示在倒数第G代,左边的数是L,右边的数是R,下面共有多少个0和1
- 区间和转换成两次前缀和和一次单点查询
- 利用dp值,沿着向下走就可以算出答案了
C. National Bomb Defusing Squad
做法
- 答案=(距离不大于R的点对个数)/n
- 预处理距离并排序,把询问离线并排序,依次查询
- \(O(n^2logn)\)要卡一卡才能过
- 可以桶排序
D.Rational Grading
模拟
E. Balanced String
题意 给一个多重集,构造字典序最小的序列,使得,前缀和的多重集等于此多重集。
做法
- 贪心,逐位考虑,如果能添加左括号就添加左括号,不能则添加右括号。
- 正确性不会证。
- 一个多重集,支持动态插入元素,删除元素,查询是否存在括号序列能得到之,怎么做啊?
- 证着证着人睡着了,就这样吧。
F. Number of Connected Components
做法
- 线筛最小质因子然后对每个数分解质因数,并查集维护连通性
- 注意每个1都要加进答案里
G. Extreme XOR Sum
题意 给一个序列,多组查询,每组查询一个区间,取出区间内的元素,相邻两项异或直到剩下一个数字。
做法
- 画杨辉三角。
- 把区间中的元素填到最底层。
- 考虑一个元素,如果到最上层的路径方案数为奇数,则有贡献。
- 区间 \([l,r]\),如果 \(\binom{r-l+1}{x-l}\) 为奇数,那么第 \(l+x\) 个位置对答案有贡献。
- lucas 定理、Kummer 定理或者预处理 1~x 2 的幂出现多少次都可以。
H. Harmonic Matrix
题意 要求交换最多2.5RC次,使得矩阵每行每列的相邻元素的大小关系相同
待定做法
- 兴奋的A题,然后没数据.....
- 用随机数据对拍没得问题
- 首先,每行每列的单调性一定是10交替的,不然交换的次数极可能会超限
- 然后考虑怎么维护这样的序列
- 我们的做法,假设当前需要考虑的位置为(i,j),然后轮流check如下相邻的四对,存在不合法情况就交换
- \((i,j) (i, j-1)\)
- \((i, j - 1) (i - 1,j-1)\)
- \((i,j)(i - 1, j)\)
- \((i-1, j) (i-1,j+1)\)
- 显然如上的构造方法在极限情况下是4RC的,但我们可以枚举行列起始的单调性,大但假设一定存在一个很小的情况
I. In the Kingdom of Hirak
题意 每个人有 p 的概率变成憨憨,憨憨会被抓,如果一个SCC里有超过 k 个憨憨,整个SCC被抓,求被抓人数的期望。
做法
- 独立考虑每个 SCC。
- 枚举这个 SCC 里有几个憨憨。
J. Prime Distance
做法
- 两个不为2的质数相加一定不是质数,所以距离差只能由2和一个其他质数组成
- 放在两个位置:[p],p为质数
- 放在三个位置:[p,2]或[2,p],p,p+2为质数
- 放在四个位置:[2,p,2],p,p+2,p+4为质数
K.8-ball Rack
题意 摆球
做法 一道很烦人的设计状态后跑最短路的题