RMQ
拔光祖国小草
存放一下做的题。
展开
-
Gym - 101201J (二分+ST)
其实这题的关键是如何降复杂度。 必然这题也是降复杂度。 所以我觉得这题很容易想到需要预处理出最小值,因为这题他是从L向R依次扫过去并取余,那么很有可能很大一部分值是用不到的,所以我们需要跳转,所以再用二分先判断左区间是否有小于该cost的值,有的话继续在左半区间查询最小值,如果不行就在右半区间查询,没有则返回-1。#include <iostream> #include <cstring> #i原创 2017-09-27 19:18:18 · 277 阅读 · 0 评论 -
codeforces 485D (RMQ)
题意:n个数中找到 ai % aj的最大值。 这个RMQ做法是荷姐姐的,太强辣。题解:先去重,然后将给的n个数插入到1-1000000这个序列中,用ST维护一个数列的最大值。那么对于每个数ai,枚举其倍数,那取到的最大值一定是(ai*j+1,ai*(j+1)-1)这个区间的最大值减去ai*j。 nlogn的预处理+O(1)的查询 然后不知道为什么我的程序挂了= =。只能交g++14过#incl原创 2017-12-02 09:47:50 · 283 阅读 · 0 评论