2014-2015 Petrozavodsk Winter Training Camp, Contest.58 (Makoto rng_58 Soejima contest)
Problem A. Manhattan
solved by RDC 32 min 1Y
题意 给一网格图,找出欧几里得距离为 d 的两点,最大化最短路。
第一回合
三分搜索,第一个点的坐标 ,确定第一个点后,对第二个点的横坐标或者纵坐标进行枚举计算答案。
第二回合
设最优解两点之间,横坐标差绝对值为 纵坐标差绝对值为 ,分类讨论。
- 当 为整数时,枚举 ,有 。
- 当 为整数时,枚举 。
- 否则,猜测答案为 ,两点斜率绝对值为 1。(距离为 的两点曼哈顿距离最大值为 )
第三回合
- 注意到,若 或者 皆不为整数,两点间最短路即曼哈顿距离。
- 当两点间最短距离不是曼哈顿距离时,,且 中存在正整数。
Problem C. Clique Coloring
solved by RDC 112 min 1Y
题意 求极小的 m,使得可以选出大小分别为 的子集,使得两两交大小小于等于 1.
做法
- 注意到任意两个集合的交,小于等于 1.
- 元素按,是否归属于 号集合,可以划分成 个等价类,编号分别为 ~
- DFS 枚举编号 大于 1 的等价类中是否有元素,剪掉一些 invalid 的枚举(若 ,那么第 x 个等价类,第 y 个等价类,不可同时有元素)。
- 合法的枚举方案很少 ,对每种方案统计答案即可。
Problem B. Dictionary
upsolved by RDC,sdcgvhgj,F0_0H
题意 给 n 个串,字符集为小写字母,替换 '?',使字典序单增。
做法1 考虑 DP
- 表示考虑第 l 个串到第 r 个串的 p ~ 20 位, 使得它们字典序单增,且 的方案数。
- 表示考虑第 l 个串到第 r 个串的 p ~ 20 位, 使得它们字典序单增,且 的方案数。
- ,其中 表示 能否全为字符 .
- 对 做后缀和,优化。
code
做法2 对上述状态转移的简化
- 表示考虑第 l 个串到第 r 个串的 p ~ 20 位, 使得它们字典序单增,且 的方案数。
- ,其中表示能否全为字符
code
Problem D. Dense Amidakuji
upsolved by F0_0H
题意 排骨龙沿着竹竿往下爬,输出会从哪个竹竿落下。
做法
考虑两个如下事实:
- 对于每条横边,定会被经过两次,一次从左往右,一次从右往左
- 每删除一条横边,相当于交换该横边左右两次经过的状态
所以只需要考虑每条横边原始被经过的标号,交换一下即可(从上到下考虑)
code
Problem G. Snake
upsolved by sdcgvhgj
题意 给一条折线段,问能否穿过一个洞。
口胡 by rdc
- 能穿过洞,等价于折线段在任意位置都能被直线划分成两段。
- 若在位置 能被划分成两段,那么必存在 ,使得 能把折线段划分成两段。
- 枚举点 ,更新点集 。
- 有解,等价于,。
Problem J. Hyperrectangle
题意 输入 维长方体,求 体积。