不按照每道题目的写了, 就记一些重要的地方
- A, B, E1是三道简单的模拟/构造题
- D题是把所有数塞进一个堆中, 每次取最大和次大, 把二者-1再放回去, 由于数的总和是小于2e5的, 所以这种方法可行
- C题E2两道题被Hack了, C题被hack的原因是题意理解错误, 本题要求的每个点如果选取左上和右上的部分, 必须选的相同多(题干中的exactly) 也就是严格相等, 结果写的时候以为两边可以不等, 导致出问题
- E2被hack是因为使用了unordered_map来处理离散化, 但是这个数据结构是基于哈希表的, 可以被特殊数据卡到O(n)查询, 所以会导致超时, 一般map是O(logn)可以过的情况下, 还是优先使用map(尤其是cf的比赛)
- 赛后补了F题, 理解清楚题意之后就是一道比较简单的记忆化搜索的问题, 当然本题做的时候为了防止超时, 想了一种将当前次所以待标记位置先设置为-1, 如果本次深搜发现了-1则代表出环了, 可以直接返回false, 这种做法应该可以扩展到其他类似的题目
- G题是dp问题, 暂时搁置