Mcginn's Blog

SGU-351-400

2021/09/12

400 The last hour of the contest

题意 已知 ICPC 封榜前的榜单以及封榜后发放的气球总数,求你所在队伍可能的最高排名和最低排名。

分析 贪心+模拟。


399 Berodoskar Development

题意 给 15×15 的网格图,每个格子有 2 种类型:'X' 表示蓄水池,'.' 表示空地。有公共边的 'X' 相互连通成一个大蓄水池。现需要从地图边缘搭建管道引流到至少 2 个蓄水池上,管道可复用。求最少需要的管道长度。

分析 贪心。


398 Friends of Friends

题意 给 50 个人的好友列表。若 c 不是 a 的好友,且存在 b 是 a 和 c 的好友,则 a 和 c 互为 friend of friend。求给定 x 的 friend of friend 列表。

分析 模拟。


397 Text Editor

题意 (光标模拟)。

分析 模拟。


396 Dance it up!

题意 背景类似劲舞团游戏。给长为 的按键序列,序列由 和 构成。每个节拍需要按一个键, 表示空操作(但即使按了任意键也没有惩罚)。

游戏开始时,角色左手在 LEFT 键上右手在 RIGHT 键上,每个节拍角色有以下行动模式:

  • 空操作,不花费任何能量。
  • 不移动手的位置,但手按下其所在位置的键,花费 1 单位能量。
  • 将一只手移动到一个空按钮上(即另一只手不在该键上),然后按下该按钮。若这只手前一节拍没有按键行为,花费 3 单元能量,否则花费 9 单元能量。
  • 将两只手移动到任意位置并按下该位置下的键,花费 10 单元能量。

不允许出现左手在 RIGHT,右手在 LEFT 的情况,该情况视为游戏失败。

求完成游戏序列的最小能量花费,并给出任一方案。

分析 DP。状态转移只与前一节拍的左右手状态相关,按游戏序列动态规划即可。


395 "Binary Cat" Club

题意 给 条按时间序但可能部分缺失的日志,日志有 3 种类型:

  • “+ name”:表示名字为 name 的人进入 club;
  • "- name":表示名字为 name 的人离开 club;
  • "= visitors":表示当前 club 有 visitors 个人。

由于日志可能存在缺失导致连续出现 "+ A", "+ A",此时中间需要补充 "-A"。求最少需要补充的日志条数。

分析 对于需要补充 "+ name" 和 "- name" 都有一个区间,当有 "= visitors" 查询操作时,贪心利用即可。


394 Berhatton

题意 给二维平面上 个点 ,每个点覆盖曼哈顿距离不超过 的点。求哪些点被覆盖至少 次。

分析 扫描线+线段树。将点坐标进行变换 ,则曼哈顿距离变成切比雪夫距离,每个点的覆盖范围是一个正方形。套用扫描线+线段树的做法覆盖点,线段树维护区间最大值,当最大值大于等于 时,将该点删除(置为无穷小,保证后续操作不会重复删除即可)。因为每个点最多只会被删除一次,因此整体时间复杂度仍然是 。


393 Bergamot Problem

题意 前 个小写字母构成大小为 的字典,每个单词仅由 2 个字母构成。设计一个按键布局,放置每个字母到不同的按键上,使得 2 个按键对应唯一的一个单词。求最少的按键数量 。

分析 状压 DP。


392 Cyclic Troubles

题意 给 的网格图,每个格子上都有一小写字母以及一个方向,指向相邻的格子。有 个询问,每个询问给定压缩长度为 的字符串,判断是否能从某个格子出发拼出该询问字符串。数据保证不存在嵌套压缩,且询问字符串的原始长度不超过 。若存在多个可行的起点,输出最小的 pair 对 。

分析 因为每个格子的出度为 1,每个格子最多落入到一个环中。主要难点在于压缩字符串和环上字符串的匹配问题。用 表示匹配到压缩字符串位置 和环上字符串位置 的循环长度。


391 Mr. X

题意 在 网格图上有 个标记点 。每次操作允许沿连续两行或两列的中线进行对折,判断是否能通过若干次对折使得所有的标记点叠在一起,并且非标记点不与标记点重合。

分析 x,y 两坐标轴相互独立。


390 Tickets

题意 给定阈值 ,当若干连续值的数位和不小于 时,计数器加一。求区间 的计数器的值。

分析 数位 DP 。 表示到第 位时,数位和为 的计数值和数位和,即 <count, new_ds>。


389 Strange Planet

题意 给定 维的超立方体上的三个点 。点 坐标为 ,点 坐标格式相同。求超立方体上到点 曼哈顿距离相同的点的数量,结果对 取模。

分析 组合数学。

每一维 对距离的贡献都是独立的,因此只需要考虑 种情况。若 ,则其他点到 的曼哈顿距离不会发生变化,此时只需要考虑 种情况 。但是根据 两个方程显然不足以解决问题。

进一步地,其实我们只需要知道第 维 是否等于 , 是否等于 , 是否等于 即可计算 到三个点的距离。将三者全等的情况排除掉后,若 ,则蕴含了 。设 的情况数为 ,当 分别为 0 和 1 时会有 2 种情况: 或者 。不失一般性,假设 中有 种情况使得点 到点 的距离都加 1,则有 。

3 种情况下可以计算出 ,列出 2 个方程后剩一个自由元,枚举计算即可。


388 Soap Opera

题意 有 个演员,Juan 和 Rosa 给这些演员进行配对,每对演员都是一男一女。给定 Juan 认为可行的 个可行方案,保证这 对不相同。同理给出 Rosa 认为可行的 个可行方案。(题目应该蕴含了 Juan 和 Rosa 的配对方案没有交集)。求最大演员数量 ,使得 Juan 和 Rosa 都能让这 个演员两两配对。

分析


387 Lazy Judges

题意 给 条线段,使用线段上的点构造正方形,求面积的期望值。

分析


386 Happy Birthday, Jedi Knight!

题意

分析


385 Highlander

题意 个人玩游戏,一开始每个人拿到印有 数字的卡片。当 A 手上有 B 的卡片时,A 可以淘汰 B 并获取 B 手上的所有卡片。当没有人能被淘汰时,游戏结束且手上有最多卡片的人获胜(若卡片相同时,则两人同时视为冠军)。求游戏结束冠军人数的期望值。

分析 组合数学+动态规划。能互相淘汰的人一开始就在同一个环上,本质上是对人分群求方案数。 表示前 个人组成 个最大环为 的方案数。


384 Country

题意 给 个点和 条边的无向图,保证任意两个点之间有且仅有一个公共点。进行 次操作,操作分 2 种类型:将第 条边删除;询问 之间的距离。

分析 根据任意两个点之间有且仅有一个公共点这个性质,可以发现原图是多个三角形共享同一个顶点,将这些顶点找出来即可。


383 Caravans

题意 二维平面上有 个点 。进行 次询问,最小化从 到 所需要的两点间最大距离。

分析 整体二分。单次询问,二分从 到 所需要的最大两点间距离 ,然后将两点距离不超过 的边构造生成树,判断 是否在同一联通块中即可。因为不同询问在相同 下的处理是一样的,因此可以通过整体二分将复杂度降至 。

剩下的问题在于如何构造二维平面点的最小生成树。Delaunay triangulation(三角剖分)可以将平面点分割出 级别的三角形,利用三角形边构造最小生成树即可。

参考

  1. Wiki - Delaunay triangulation
  2. OI-wiki

382 Cantor Function

题意 给定康托函数 以及整数 ,求 的最简分数形式。 $$ 分析将积分分段积分,即。对于区间根据分段函数形式并换底: {0}^{ 3} f(x)^ndx = {0}^{ 3} {2^n} dx \ =_{0}^{1} 3 {2^n} dt \ = {3^n} _0^1 f(t)^ndt $$ 换底后与原问题相同。

而对于区间 [2/3, 1],因为有常数项 的存在,需要用二项式展开,然后会发现需要对 都进行积分得到相应值。

假设二项式展开除 外的和为 ,则有:


381 Bidirected Graph

题意 给 个点的和 条边的有向图,每条边 均定义了边权 。允许对任意点 进行变换:对于所有边 ,使得 。当所有边 都满足 时,此时有向图可视为无向图。

判断通过点变化是否将有向图转换成无向图,若能输出至少需要几次点变换并输出任一方案。

分析 模拟。一个联通块中的点确定是否变换后,随后该联通块的其他点变换状态也固定了。因此,选取联通块任意点并枚举状态后,取点变换数量少的方案即可。


380 Synchronised Alpinism

题意 两个人从山的左右两个山脚开始爬山,要求两个人每时每刻都必须在同一高度,判断两个人最后是否能够相遇。山简化成多边形,其顶点为 ,其中 。

分析

代码 380.cpp


379 Elevator

题意 层楼高的建筑中仅有一部电梯,每次能承载 个人。已知第 层楼有 个人在等电梯到 -1 层,电梯上升或下降一层楼需花费 秒。电梯初始位置在 -1 层,求 秒内最多能带多少人到 -1 层。

分析 二分。二分人数。


378 Save the Fisher

题意

分析 (没看懂样例,skip)


377 The Lesson of Physical Culture

题意 给 的网格图,要求任意 的正方形中有且仅有 2 个 1,求方案数。

分析 构造。考虑第一行状态,若存在相邻的 2 个 1 或 0,那么下一行的状态便固定了。当第一行不存在相邻的相同数字时(即 101010.. 或者 01010...),下一行与第一行相同或者互补。


376 Berland All-Round Competitions

题意 个选手参与竞赛:先游泳,然后进行 段赛马。每匹马有不同的速度,先到达某一阶段的选手优先选下一阶段的马(若存在同时到达的选手,力量值 的选手优先)。按照选手到达顺序,求选手的排名。

分析 模拟。


375 Amplifiers

题意 Shurik 想利用电压放大器得到标准电压的 倍电压。电压放大器有两种:从 X 放大至 2X-1;从 X 放大至 2X+1。求最少需要几个电压放大器,或判断无解。

分析 二进制。显然 必须是奇数。根据题意有 或者 且 二进制位末位是 1,因此 ±1 会影响倒数第二位。当二进制位倒数第二位是 1 时,此时只能 - 1 否则 +1 会导致新的 不为奇数。当二进位倒数第二位是 0 时,此时必须 +1 否则同样导致新 不为奇数。

因此 向下转化时路径是固定的。


374 Save Vasya

题意 求多项式 的系数和,其中 。

分析 模拟。令 ,则问题转化成 。


373 Carlsson vs. Winnie-the-Pooh

题意 一块圆形披萨被切了 4 刀,Carlsson 和 Winnie 轮流取一小块披萨吃,花费的时间与披萨面积成正比。每个人都希望最大化自己最终吃到的披萨,求最后两人吃到的披萨面积。

分析 计算几何+DP。圆形切 4 刀最多划分出 11 个区域, 表示每个披萨未被吃/被 Carlsson 吃了/被 Winnie 吃了三种状态,依据状态可以计算出下一个取披萨的人。

剩下的问题就是如何求各块小披萨的面积了。


372 Tea Party

题意 一场聚会上有 个客人,Alice 会在客人离开时送茶包。茶包有红茶和绿茶两种品类,但有 不同类型。Alice 会给不同客人不同类型的茶包,但不允许连续 3 个茶包都是红茶或绿茶。已知 个茶包的价格 以及品类 ,求 Alice 至少需要花费多少费用。

分析 贪心。从结果角度入手,假设送出 包红茶以及 包绿茶且 。因为不能连续送出 3 个茶包,因此 。先按价格 排序,若不满足该限制条件,则根据条件补充相应品类的茶包。


371 Subway

题意 构造地铁路线方案:地铁由若干 circle lines 和 radial lines 构成,但需要满足:

  1. 每个 circle line 至少 3 个站点,但不超过 10 个站点;
  2. Circle lines 通过换乘站串联起来形成一条链;
  3. Radial lines 站点之一在 circle line 上,而另一个站点不在任何 circle lines 上;
  4. Radial lines 之间不能有相同站点;
  5. 任意站点最多在 2 条 lines 上,即换乘站不能作为 radial line 的站点之一。

给定站点数 和站点对数 ,求任一方案或判断无解。

分析 构造。站点本质上可以分为 4 类:换乘点、circle line 经过点、radial line 终点、radial line 起点,其数量分别记为 。

根据题意有 共 3 个等式,可以枚举 来求解其他 3 个值。注意条件一会限制 之间的关系。之后根据求解值构造即可。


370 Rifleman

题意 在大小为 网格图中,从位置 需要设置几条射线以覆盖所有格点。

分析 容斥原理。网格图的一条射线可以使用 表示,其中 互质,问题可以转化为:给定 ,求 中与 互质的数的数量。

因为 ,因此 的质因子数量不超过 7 个。根据容斥原理可以在 求出互质数的数量。


369 Game

题意 二维平面上给 个点。若三个点构成了矩形的三个点,则会填充矩形的第四个点。求最终平面上有多少个点。

分析 模拟。假设直线 有个若干个点 ,对于直线 上的给定点,会在其他直线 上填充新点,最后形成一个网格图,其坐标值域是由给定点所决定的。也就是说,我们只关心哪些 或者哪些 出现过。

当其他点落在网格图直线上时,可以沿新点垂直于该点所在直线上覆盖其他给定点。


368 Tests

题意

分析 ?模拟?


367 Contest

题意 有 道题目,解决第 道题目需要花费 单位时间。题目之间有 种依赖关系:解决问题 之间必须先解决问题 ,保证 。求在时限 内最多能解决多少道题目。

分析 图+贪心。因为有 ,所以必然会优先解决 。


366 Computer Game

题意 游戏中有 道题,主角答对第 道题会获得 的愉悦度和 的得分。主角只会答对其中的 道题,因此程序需要选择其中的 道题使得 尽可能小其次最大化 ,其中 。

分析 动态规划。因 的值域较小, 的值域为 [-50, 50] 共 101 种可能。相同差值 中根据最大化 固定了选取顺序,因此仅需要枚举 道题,替换原先 的枚举。


365 Ships of the Desert

题意 当一个 个数位的数字,其数位先单调递增后单调递减,则定义该数字为幸运数字。允许有前导 0 的前提下,统计幸运数字的数量。

分析 动态规划。 表示有 个数位且最后一位为 的方案数。


364 Lemmings

题意 有 只旅鼠每隔 秒从点 出发,以 1cm/s 的速度朝右前继直至从平台掉落,掉落速度也为 1cm/s。旅鼠会从一个平台掉落至另一个平台或者永远在下落状态。

我们可以停止行进中的旅鼠使其保持在原地,当其他旅鼠碰到停在原地的旅鼠会改变行进方向。

旅鼠的最终目的在终点 ,求最多能让几只旅鼠到达终点,此外让最小化最后一只旅鼠到达时间。

分析 最短路。关键点只有旅鼠在其他平台的落点,依据这个构造图,使用 表示到点 方向为 的最少停止旅鼠数量以及最短耗时。


363 Baggage Room

题意 有 个人和 个柜台,已知每个人的到达时间 和处理时间 。当一个人到柜台前时会优先选择排队人少的柜台办理业务,有多种选择时优先考虑编号小的柜台。求每个人选择的柜台编号以及离开时间。

分析 模拟。


362 Robot-Annihilator

题意 一个机器人欲遍历 的网格图,按照下左上右顺序挑选下一步格子,每个格子仅能被遍历一次。求机器人的执行序列。

分析 模拟。


361 National Flag

题意 用红色和蓝色给 网格图染色,要求所有 和 的子矩阵都必须刚好有 2 个蓝色,并且整张图的蓝色数量最少。求任一种染色方案。

分析 构造。对于任意 的正方形,填充 3 个不同行、不同列的蓝色方格即可满足题意。


360 B++ Interpreter

题意 给 的网格图以及朝向顶部的机器人,图上有若干个目标点,用 表示。机器人根据给定指令序列行动:指令序列由主函数 m() 开始,调用其他函数或者执行基本操作符 。

分析 模拟。


359 Pointers

题意 给 4 个 integer 类型的指针,有 3 种操作:给指针所在地址赋值常数/其他指针所在地址的值;修改指针指向地址。对于 writeln 操作输出相应指针所在地址的值。

分析 模拟。


358 Median of Medians

题意 给 3 组数,每组 3 个数。先求每组数中的中位数,然后再求这些数的中位数。

分析 模拟。


357 Remote Control

题意 电视有 0 到 99 的频道,遥控器可以通过 ↑↓ 键切换至相邻频道或者通过 -- 和数字键直接切换到指定频道。遥控器部分按键损坏了,问从频道 切换至频道 最少需要按键几次。

分析 构图跑最短路。


356 Extrasensory Perception

题意 有 对夫妇但不知谁和谁配对,求刚好猜中 对的概率。

分析 组合数学。 枚举猜中的夫妻对,剩下进行错位排列 。


355 Numbers Painting

题意 给 的数字染色,要求若 整除 ,则两者颜色不同。求最少需要的颜色数,并给出其中一种染色方案。

分析 本质上是求数 的约数个数。


354 Just Matrix

题意 有一 的矩阵 ,且 。已知 表示第 列中满足 的个数和 表示第 行中 的个数。要求构造矩阵 使其满足上述条件,若无解则输出 0。

分析 从单行的前 2 个元素入手,根据 可比较这 2 个元素的大小。(再走一步),考虑第 3 个元素,根据 也可以推断出前 3 个元素的大小关系。以此类推,我们可以知道单行/单列的所有元素的大小关系,进而可以构造一张 DAG。

根据 DAG 的拓扑序填充 即可。


353 Billing

题意 (模拟)

分析


352 Beerland Attacks

题意 个点 条边的无向图,给定以 1 为根的一棵最短路径树。对于除 1 外的点 ,当 的最短路径树上的父边不可用时,1 到 i 的最短距离。

分析 最短路算法。


351 A Mission for a Scout

题意 给定二维平面一个圆 ,圆外两点 ,以及一常数 表示能在圆 行走的最大距离。求从点 到点 的最短距离,输出其中一种方案。

分析 (计算几何)

CATALOG