题目链接: https://vjudge.net/contest/418600
A 校门外的树
直接模拟染色的过程即可。
1 |
|
B 铺地毯
从后往前遍历地毯,找到的第一个即为答案。
1 |
|
C 低买高卖
维护一个小根堆,每一个元素表示前 \(i-1\) 天中可以和当前第 \(i\) 天进行一次购买售出操作的股票。设 \(a[i]\) 表示股票价格,当堆顶小于当前价格时,贪心使用堆顶的股票低买高卖;若堆顶大于当前价格,则把今日的股票插入堆中两次。为什么要放两次?因为实际上在某一天什么都不做,相当于买入一股又立马卖出一股,其不会改变收入,但买入和卖出的股票由于不存在标识,完全可以认为是不同的股票。刚才插入的两股,第一股如果在未来被使用,则可认为其做了一次“中间股票”;第二股则是传统意义上的,该股票在未来的某一天被对应卖出。
1 |
|
D IP地址转换
使用位运算模拟即可。
1 |
|
E 明明的随机数
sort()与unique()函数。
1 |
|
F 拼数
观察了一下样例,发现这不就是字典序嘛,果断WA了。后来发现 \(432\) 字典序比 \(43\) 大,但是实际上却应该是 \(43432\) ,把字典序比较换成了 \(a+b\lt b+a\) 即可。
1 |
|
G 今年暑假不AC
把线段按左端点排序,然后从右往左遍历排好的线段,贪心取不重叠的线段即可。
1 |
|
H 排座椅
取桌子之间的间隙建立新网格,对行和列贪心取“串”起来最多的即可。(OOP大法好!)
1 |
|
I 回文日期
强行手写一个日期类,然后枚举判断即可。
1 |
|
J Claris and XOR
(这题真是要了老命)
贪心从高到低构造 \(1\) ,考虑当前是第 \(i\) 位,若 \(x\) 和 \(y\) 在这一位的取法均为任意,则后面所有位一定都可以任意取,这时直接把答案的后面全取为 \(1\) 。如果两个数在这一位的取法受限,则贪心构造出答案 \(1\) 。如果贪心也不行则只能填上 \(0\) 。
1 |
|
K Flip Game
注意到,翻片儿的顺序不会产生影响,则同一个地方最多翻一次即可,直接进行DFS记忆化搜索。
1 |
|
M Unique Snowflakes
滑动窗口型问题,我好像写了一个st表加二分的方法……(离谱)。
1 |
|
N Hero
一开始写了一个奇怪的贪心给WA了,实际上直接利用 \(\displaystyle\frac{\text{HP}_i}{\text{DPS}_i}\) 越小越好的贪心就可以了。
1 |
|