A. x/5上取整,可以写成(x+4)/5,当然你要dp我也不拦着……
B. 相邻两个1之间一定要插一个板,之后是乘法原理,注意没有1的情形,当然你要dp就不用特判了……
C. 枚举r1盖住的最远的点,然后找出没被r1覆盖的点,那么这些点要被r2覆盖,更新答案,复杂度O(n^2),如果考虑r1由大变小的过程,可以O(nlogn)对所有点按到r1的距离为第一关键字,到r2的距离为第二关键字从大到小排序,之后扫一遍即可。另外,据说三分r1是不行的……
D. 显然答案<=3,三点共线时答案为1,否则如果有两点的横坐标相同,那么剩下的一个点的纵坐标应该在另外两点之间,纵坐标同理,此时答案为2,否则答案为3。注意T字形并不是一个polyline……
E. 莫队算法,假设已经得到询问[l,r]的答案,考虑如何转移到[l,r+1],只需考虑区间[l,r+1],[l+1,r+1],...,[r+1,r+1]中有多少个区间xor为k,预处理前缀xor后维护[l-1,r]的前缀xor就可以快速查询个数,转移时顺便维护即可……
B. 相邻两个1之间一定要插一个板,之后是乘法原理,注意没有1的情形,当然你要dp就不用特判了……
C. 枚举r1盖住的最远的点,然后找出没被r1覆盖的点,那么这些点要被r2覆盖,更新答案,复杂度O(n^2),如果考虑r1由大变小的过程,可以O(nlogn)对所有点按到r1的距离为第一关键字,到r2的距离为第二关键字从大到小排序,之后扫一遍即可。另外,据说三分r1是不行的……
D. 显然答案<=3,三点共线时答案为1,否则如果有两点的横坐标相同,那么剩下的一个点的纵坐标应该在另外两点之间,纵坐标同理,此时答案为2,否则答案为3。注意T字形并不是一个polyline……
E. 莫队算法,假设已经得到询问[l,r]的答案,考虑如何转移到[l,r+1],只需考虑区间[l,r+1],[l+1,r+1],...,[r+1,r+1]中有多少个区间xor为k,预处理前缀xor后维护[l-1,r]的前缀xor就可以快速查询个数,转移时顺便维护即可……