2021牛客暑期多校训练营1

2021 牛客暑期多校训练营 1

队友跑路,痛苦单打。

AC Codes

A. Alice and Bob

Alice 和 Bob 从两堆石子(石子数分别为 n,m )中取石子,Alice 先手选择一堆,从中取 k(k>0) 个;Bob 后手只能选择另一堆,从中取 sk(s0) 个,谁不能取就输了。询问谁必胜?

T(T104) 组询问,n,m5000

注意到 Bob 的必胜态很少,大力出奇迹,直接 sg 打表 + 剪枝。

B. Ball Dropping

球和等腰梯形相切的模型。

相似三角形推一下公式。

D. Determine the Photo Position

签到。

E. Escape along Water Pipe

显然是个模拟,所以我写不动了

不论管子长什么样,我们从某一个单元格走出只有 4 种情况,因此只需要存 4nm 种状态,直接暴搜所有情况。

F. Find 3-friendly Integers

T 组询问,每次询问区间 [L,R] 中的 3-friendly 数字数量,3-friendly 数字指的是:该数字中存在一段连续子串为 3 的倍数。

T104,LR1018

数位 dp 硬草过去,不过这样不够优秀。实际上 n100 时由于抽屉原理必定是 3-friendly 数,因此暴力一下就行。

G. Game of Swapping Numbers

给定数列大小为 N 的数列 A,B,需要恰好交换 K 次数列 A 中任意两个不同的数,最大化 Ni=1|AiBi|

N5×105;K108;|Ai|,|Bi|108

先不考虑 K 次的限制,那么最大值就是:A,B 这两个数列中较大的 n 个数减去较小的 n 个数,这步转化有点像 ARC120 D – Bracket Score 2,因此并不难以想到。然后再考虑加上 K 次限制,如果我们将 A,B 这两个数列中较大的 n 个数染成黑色,较小的 n 个数染成白色,那么一黑一白的 (Ai,Bi) 对就不需要变换了,只需要交换二黑或者二白的 (Ai,Bi) 对。

然后考虑:我们应该优先交换哪些同色的 (Ai,Bi) 对?如果我们恰好需要交换这样四个数 Ai,Aj,Bi,Bj ,同时假设 Ai,Bi>Aj,Bj ,不难计算出进行了一步交换后,Ni=1|AiBi| 的变化是 2min(Ai,Bi)2max(Aj,Bj) 。因此我们需要做的就是最大化 2min(Ai,Bi)2max(Aj,Bj) ,由于 i,j 下标分离,因此只需要对 min(Ai,Bi)max(Ai,Bi) 分别排序并贪心匹配。

虽然题目中要求我们恰好 K 次变换,但是实际上可以直接转化为至多 K 次变换:因为如果变换到最优解的最少步数小于 K ,那么我们可以选择两个无关紧要的位置交换(两个同色的位置),就可以浪费一步了。注意这对于 N>2 的所有情况均成立,但是需要特判 N=2

H. Hash Function

给定一个大小为 N 的数组 A ,找一个最小的随机种子 x 使得 Ai(modx) 互不相同。

N5×105,Ai5×105

Ai(modx)Aj(modx) 的充要条件是 |AiAj|0(modx) ,也就是说,对于所有的 |AiAj| 而言,x 不能成为他们的因子。

如果已知所有的 |AiAj| ,求这样的 x 可以在 O(NlogN) 的时间复杂度下筛出,因此我们需要做的就是求出所有的 |AiAj| 。由于 Ai5×105 ,所以直接开一个 500001 大小的桶,然后通过减法卷积求解。如果不知道减法卷积,请参考多项式的各种操作

I. Increasing Subsequence

给定一个大小为 N 的排列 P ,Alice 和 Bob 轮流取数,并且两人各自满足它后一轮取的数一定在前一轮取的数右边(比如 Alice 前一轮取了 Pi ,后一轮取了 Pj ,那么 j>i ,该条件对 Bob 也单独成立),两人同时满足后一轮取的数一定比前一轮取的数大(比如某一轮中 Alice 取了 Pi ,那么 Bob 下一轮取的数必须 >Pi )。

有多个合法的取数情况时,所有合法的数被选中的概率相等,询问取数的期望轮数。

N5000

反正比赛的时候没看懂,看了直播才听懂题意。

K. Knowledge Test about Match

给定大小为 N 的数组 A=[0,1,2,,N1] 和数组 B 。重排数组 B 使得 N1i=0|AiBi| 尽可能小。要求你给出的排列与最优解的平均误差不超过 4%

T(100T500) 组询问,N1000,N4×104 。数据随机。

首先,这个问题显然可以看作完全二分图的最小权匹配,如果不考虑数据范围可以直接 KM。

但是由于时限仅为 1s,所以全部 KM 肯定不行,因此考虑:小范围 KM,大范围贪心。提交了几十发才 AC 了本题,截断点是 N=50 。贪心的正确性纯脑补,我采用了一个冒泡排序的贪心策略,但并不能解释为什么是对的

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇