学习内容:cf补题,abc补题
1.No Sitting(cf1627B)
本题的策略比较好考虑,但怎么实现能输出0-n*m-1的情况是个难题。刚开始我考虑的是可以推导出一个数学公式, 从而直接输出,但不太好推导(要考虑奇偶,还要考虑其他细节),但是注意到由于我们是用计算机解决问题,很多问题我们不需要严格推导出具体是哪一个,直接把四角的位置全比一遍就可以。第二点就是针对这种0-n*m-1都输出的情况,我们可以考虑先计算出所有答案再排序——不要局限于直接算出某个答案。
2.粉刷栅栏(Acwing1987)
差分+区间离散化/stl
由于本题中数据范围可以达到1e9,显然不能直接差分。对于每一个区间,我们可以离散化,即用一个数来表示这个区间。那么我们差分的时候直接进行对区间端点的差分。考虑到端点的顺序需要有序,我们可以直接用map来存储(当然离散化也是可以的)。由于map内部的元素是有序的,我们只需要直接for(auto& [x,v]:b)进行每组值的访问,如果sum>=2,则ans直接加上区间的长度。