SDU暑期集训排位(4)

SDU暑期集训排位(4)


C. Pick Your Team

题意\(n\) 个人,每个人有能力值,A 和 B 轮流选人,A 先选,B 选人按照一种给出的优先级,
A 可以随便选。A 想最大化己方能力值。

做法

  • 划分方案合法的充要条件:任何前缀中,\(被 B 选择的人 - 被 A 选择的人 > -1\)
  • 考虑 DP,\(dp[i][j]\) 表示考虑前 \(i\) 个人,\(j\) 个人被 B 选择了,A 和 B 最大分差。
  • 考虑转移,枚举 \(i+1\) 个人归属即可。

F. It's a Mod, Mod, Mod, Mod World

题意\(\sum_{i=1}^{n}[pi\%q]\)

做法

  • GCD 的经典应用。
  • \(\sum_{i=1}^{n}[pi\%q] = \sum_{i=1}^{n} (pi-[\frac{pi}{q}]q)=(\sum_{i=1}^{n}pi)-q(\sum_{i=1}^{n}[\frac{pi}{q}])\)
  • 只需求 \(f(n,p,q)=\sum_{i=1}^{n}[\frac{pi}{q}]\)
  • \(p\geq q\) 可递归到 \(f(n,p\%q,q)\)
  • \(p<q\) 可枚举 \(x\),统计 \([\frac{pi}{q}]\geq x\)\(i\) 方案数,即可交换 \(p,q\)
  • 更详细介绍见2009年论文 金斌《欧几里得算法的应用》

K. Subsequences in Substrings

做法 序列自动机,预处理位置 \(x\) 下一个字符 \(ch\) 在哪,枚举起点,然后往后跳。复杂度 \(O(|S|*|T|)\)

猜你喜欢

转载自www.cnblogs.com/FST-stay-night/p/11299153.html