07.10
T1
一开始理解错题意,后来看样例才发现。
觉得暴力是能过的,推了下两个圆的交点坐标,然后转换成了一个求最多覆盖的问题。先想了下权值线段树,发现做不到。然后想到扫描线的思想,就考虑把点排序,打上 +1/-1 标记。然后排序。
但是一直被排序后初始点在结束点后面的情况给卡住,后面也没能调出来。
其实可以用三角函数求角(就不用复杂的计算),然后把上面那个情况先拉出来计算,然后再处理正常的。
T2
考场想拿 \(n^2\) 的部分分。发现我在枚举之后很难快速判断是否合法,于是就想着固定左端点,不断加入右端点,同时判断是否合法,没写完。
但应该先考虑比较简单的条件,比如同余,不能相等之类的。然后就能快速计算出某个区间最少还差多少。用一些数据结构优化即可。
T3
没怎么看,也没看懂题意。
发现树的形状对答案没什么影响,每个点对应的区间大小是知道的,只需要判断能够通过合理的分配使得每个数的总区间大小是一样的。可以用 dp。
07.12
T1
一开始没什么想法,后面就想叫外卖次数和存活天数应该是一个单峰函数,但不会证明。秉持着大胆猜想,绝不求证的想法就上了。
三分叫外卖次数,然后贪心,把钱先平摊,能买就买,最后再把剩下的钱合起来,看还能不能再买一点。
T2
没什么想法,先回忆了一下怎么求最大全零子矩阵,然后暴力递归排序拿 30 分的部分分。
还挂了 10 分,寄。
T3
想了个 DP 但是有后效性,然后不知道怎么把后效性处理掉。
其实转最短路就好,调整一下 SPFA 队列的含义就可以了。