2024.11.21 test

A

给定序列 \(a\),只有三种值,问最长的区间满足只有一种值出现,或者三种值的出现次数互不相同。
\(n\le 10^6\)

一个 trick,三种值出现次数不同的话考虑钦定大小顺序,设 \(cnt_0<cnt_1<cnt_2\)
那么,\(s_{r,1}-s_{r,0}>s_{l-1,1}-s_{l-1,0}\)\(s_{r,2}-s_{r,1}>s_{l-1,2}-s_{l-1,1}\)\(r\ge l\)
虽然这是个三维偏序,但是对于每个 \(r\) 我们只求最小的 \(l\),所以不需要关心 \(r\ge l\)
那么就是二维偏序 \(O(n\log n)\)

B

解析 CSS。大模拟。

考虑 unordered_set unordered_map 极限通过。

C

\(n\) 张卡牌,每张的值为 \(a_i\),双方轮流选卡片,使得所有选出卡片的 \(\gcd\) 变为 \(1\) 或没有牌可以选的人负。
问先手胜还是负。同时问双方随机选数先手的胜率。\(n\le 100,a_i\le 1e5\)

考虑设 \(f_{i,d}\) 表示当前 \(\gcd=d\),且已经选了 \(i\) 个数的答案。显然当前已选的都是 \(d\) 的倍数。
枚举下一个选择的会转移到哪个 \(d\) 即可。

posted @ 2024-11-21 19:18  s1monG  阅读(2)  评论(0编辑  收藏  举报