Practice
Standing
- Solve: 5 / 10
- Penalty: 909
- https://codeforces.com/gym/101611/standings
Solution
A. Advertising Strategy
題意
總共有 $n$ 個人,你想要讓所有人都看到影片
但你只能最多直接推給 $k$ 個人看影片
$a_i$ 表示第 $i$ 天看過影片的人數
$x_i$ 表示你在第 $i$ 天推給 $x_i$ 個人看影片
$\sum x_i <= k$
每天人數會倍增但最多增加沒看過的一半
Let $b_i = a_i + x_i$
$a_{i+1} = b_i + \min(b_i, \lfloor\frac{n-b_i}{2}\rfloor$)
求 $\min i$ 滿足 $a_i = n$
$n \le 10^{18}, k \le 10^{5}$
作法
如果要推影片 越早推越好 剩下的在最後一天推剩下的所有人 暴力枚舉一開始要推幾個人 複雜度是 $\mathcal{O}(k\log{n})$
submission
|
|
B. Byteland Trip (TODO)
題意
有 $n$ 個星球
每個星球只能往一個方向走 $<$ or $>$
星球 $i$ 是 $<$ 表示可以去 $j < i$ ($>$ 則是 $j > i$)
對於每個星球 求它是終點的 TSP 路徑數量
$n \le 3000, \mod 10^9+7$
作法 (TODO)
聽說是 dp
C. Carpet
題意
給你一顆 $n$ 個點的樹
你要把這顆樹平放到 $1 000 000 \times 20$ 的平面上
保證邊不會重疊
$n \le 10^{5}$
作法
$2^{20} > 1e6$
輕重鏈剖分
依照 dfs 順序排列,先走輕點
WA1: 模板打錯字、沒先走輕點
submission
|
|
D. Decoding of Varints
題意
給你一個序列 $a$
連續的幾個數字會構成一個數字(題目的公式)
如果 $a_i<128$ 代表數字的結尾,
輸出每個數字
$n \le 10^5$
作法
簡單實作 注意 overflow 🫠
WA12: overflow
submission
|
|
E. Empire History (TODO)
F. Fake or Leak?
題意
給你封版的記分板
和偷出來最終記分板的連續 $k$ 個
問你偷的記分板是不是假的
解法
判斷不在 leak 計分板的隊伍是否一定會在 $k$ 個隊伍之間。
WA123: 沒注意計分板保證合法 & 沒衝突
WA456: 沒判斷隊伍的可能範圍
submission
|
|
G. God of Winds
題意
給你 $n \times m$ 的方格圖
(上下相連、左右相連)
每條邊有一個風向
垂直 +下-上、水平 +右-左
你可以加任意個 cyclone / anticyclone
問能不能達成輸入給定的風向
作法
- 尤拉迴路
- 所有點入度 = 出度
- row (column) sum = 0
WA1: 沒判斷 sum = 0
submission
|
|
H. Hilarious Cooking (upsolve)
題意
廚師要烤肉
$t_i$ 表示時間 $i$ 的溫度
問你能不能做到以下條件
- 需要總共 $T$ 的溫度 $\sum t_i = T$
- $| t_i - t_{i-1} | <= 1$
- 有 $m$ 個條件
- $t_{a_i} = b_i$
作法
把 $n$ 個溫度切成 $m+1$ 段
看每一段的上下界
需要注意實作細節
edge case 1
|
|
edge case 2
|
|
submission
|
|
I. Infinite Gift (TODO)
題意
給 $k$ 維的無限整數格子點地圖
給 $n$ 個的向量 $v_i$
每個整數點 $a$ 會跟所有 $a+v_i$ 建邊
問你是否存在點著色,讓每條邊的兩端不同色
(等價於問是否為二分圖 or 問是否存在奇環)
$n,k<=1500$
作法 (TODO)
聽說是高斯消去
J. Judging the Trick (TODO)
題意
給長方形地圖範圍和 $n$ 個三角形
找出任意一個不在三角形裡(含邊上)的點
$n \le 10^5$
作法 (TODO)
可能可以掃描線