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

题意 摆球

做法 一道很烦人的设计状态后跑最短路的题


posted @ 2019-08-20 19:43  FST_stay_night  阅读(154)  评论(0编辑  收藏  举报