随笔分类 - ST表
摘要:分析:写这题快写吐了...... 这道题的思路其实很容易想到:处理出每个点往左往右分别能看到哪. 然后以每个点为起点,照着题目说的那样记忆化搜索一下就好了,用st表处理出转向的情况. 怎么预处理呢?实际上就是维护了一个上凸壳,仿照凸包的维护方法即可. st表不再存储值,而是对应下标. 下面说说我de
阅读全文
摘要:4540: [Hnoi2016]序列 Description 给定长度为n的序列:a1,a2,…,an,记为a[1:n]。类似地,a[l:r](1≤l≤r≤N)是指序列:al,al+1,…,ar-1,ar。若1≤l≤s≤t≤r≤n,则称a[s:t]是a[l:r]的子序列。现在有q个询问,每个询问给定
阅读全文
摘要:D. Pair of Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output D. Pair of Numbers ti
阅读全文
摘要:#include #include #include #include #include using namespace std; int n, m, f[100010][21]; void init() { for (int j = 1; j <= 20; j++) for (int i = 1; i + (1 << j) - 1 <= n; i++)...
阅读全文
摘要:分析:要遍历所有的区间,肯定是枚举左端点,然后再枚举右端点.关键是怎么高效地求区间&,|,一般而言是用前缀和的,但是&,|不满足区间可减性,所以可以考虑线段树?这道题不带修改操作,用线段树太浪费了,那么可以用ST表来维护. 查询做到O(1)了,但是怎么快速枚举区间呢?枚举左端点和右端点肯定只能选择一
阅读全文