Codeforces Round 920 (Div. 3)
A. Square
思路:
- 要计算矩形面积,直接统计上下左右的最值即可
时间复杂度:\(O(1)\)
1 | void solve() { |
B. Arranging Cats
思路:
- 首先发现,只要
1
的个数在s
和f
中发生了变化,答案的起始个数一定是这个差值 - 在不变的数量里统计位置差异的个数,代码写的有点臃肿
qwq
时间复杂度:\(O(n)\)
1 | void solve() { |
C. Sending Messages
思路:
- 直接在每一个区间中与关机的消耗取
min
,然后总的能量减去这个值,判断这个过程中是否会小于等于0
即可
时间复杂度:\(O(nlogn)\)
1 | void solve() { |
D. Very Different Array
思路:
- 结论:存在两个序列
a, b
,如果其中一个升序,另外一个降序,那么这一个序列的差值和一定最大 - 用这个结论模拟即可,注意爆
int
时间复杂度:\(O(nlogn)\)
1 | void solve() { |
E. Eat the Chip
思路:
- 首先可以发现,如果这种情况,一定平局,黑色选中区域为它们占据的单元格
- 还有两种是别距离为奇数和距离为偶数的情况
- 如果是奇数,那么如果
Alice
可以在有限的时间里把Bob
逼到墙边就获胜,否则平局 - 如果是偶数,那么如果
Bob
可以在有限的时间里把Alice
逼到墙边就获胜,否则平局
- 如果是奇数,那么如果
时间复杂度:\(O(1)\)
1 | void solve() { |