摘要: Richard神犇出给nowcoder的题 用单调栈找到每个点它向右和向左的第一个大于或小于它的位置,然后它作为最大值/最小值的区间就要在这个范围里,那么它的贡献就是这个区间长度乘一乘再减一减 注意一下值相等的时候怎么处理 阅读全文
posted @ 2018-09-27 08:19 Ressed 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 反着建边,从T bfs找合法的点,然后再正着bfs一下求最短路就行了 阅读全文
posted @ 2018-09-27 07:56 Ressed 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 先考虑部分分(只有01/只有0~7)做法:枚举每个数,把和他相同的设为1,不同的设为-1,然后这个数作为众数贡献的个数就是区间和>0的个数 推着做,树状数组记前缀和<=x的区间的数量就可以,复杂度$O(8nlogn)$ 如果直接套过来,$O(n^2logn)$肯定是不行的,但可以发现枚举了所有数以后 阅读全文
posted @ 2018-09-27 07:53 Ressed 阅读(361) 评论(0) 推荐(0) 编辑