迅哥讲解(说实话没有认真听,不过关系不大) RMQ:Range Minimum Maximum Query 给定一个序列A[1…N],问A[i…j]之间的极值 如果只问一次, 显然是O(N) 标准RMQ问题是:不停的查询同一个序列上的不同区间内的极值 序列A的长度N,一共Q次查询 纯暴力法:O(NQ ...
分类:
其他好文 时间:
2020-03-12 23:16:13
阅读次数:
57
"传送门" 补这道题的契机是因为烂桥杯2013的最后一题,虽然那道题暴力也能过,但看到大佬介绍的线段树做法,感觉又刷新了我对于线段树的认识,~~果然线段树是无所不能的~~。 题意 给你一个 $n$ 的全排列 $A$,你可以从中选两个不重合的区间,如果这两个区间里的所有数按升序排列是一个公差为 $1$ ...
分类:
其他好文 时间:
2020-03-12 09:53:11
阅读次数:
48
1 #include<bits/stdc++.h> 2 3 using namespace std; 4 5 const int N = 1e5 + 5; 6 7 int f[N][30],a[N]; 8 9 int read(){ 10 int x=0,flag=1; 11 char ch=get ...
分类:
编程语言 时间:
2020-03-11 19:34:24
阅读次数:
71
"题目链接" 树状数组(或线段树)离线 我们可以维护一个树状数组 $tree$ ,计算 $[1,i]$ 出现的不同种类的个数。然后根据前缀合思想,取 $ans=query(r) query(l 1)$ 离线按 $r$ 排序查询区间。 由于我们要求不重复,所以靠右的比靠左的更有价值(更关心靠右的)所以 ...
分类:
其他好文 时间:
2020-03-11 10:52:44
阅读次数:
56
# 题意 初始只有m个数字,m个操作Q表示查询序列后L个数的最大值,A t表示在序列后加一个数长度变为n+1, 加的数是(t+a)mod p,a是上一次查询的值 # 题解 线段树操作即可,只需要向上更新属性,额外记录数组个数和上一次查询值 1 #include <bits/stdc++.h> 2 u ...
分类:
其他好文 时间:
2020-03-11 09:12:21
阅读次数:
58
题意 对于一个区间有4个操作: 1.将a~b都加上c 2.将a~b都乘上c 3.将a~b都变成c 4.查询a~b的每个数的p次方的和。(p=1,2,3) 思路 平方和这样来推:$(a+c)^2=a^2+2ac+c^2$ 即$sum2[rt] = sum2[rt] +2 sum1[rt] c+(r l ...
分类:
其他好文 时间:
2020-03-11 01:19:18
阅读次数:
43
题目大意: 有n条直线,求它们两两之间的交点到(p,q)前m近的距离和。 $n \le 50000, m \le 10^7$ 题解: 二分答案r,肯定的。 接着就是求有多少个交点到(p,q)的距离 define fo(i, x, y) for(int i = x, _b = y; i = _b; i ...
分类:
其他好文 时间:
2020-03-09 20:55:47
阅读次数:
49
大大大数据结构题. code: #include <cstdio> #include <cstring> #include <string> #include <algorithm> #define ll long long #define N 200007 #define INF 1e14 usi ...
分类:
其他好文 时间:
2020-03-09 11:42:37
阅读次数:
86
题目链接:http://icpc.njust.edu.cn/Problem/Hdu/3973/ 题意是:给出一个模式串,再给出一些串组成一个集合,操作分为两种,一种是替换模式串中的一个字符,还有一种是查询模式串中[l,r]区间的字符串有没有出现在字符串集合中。 由于数据量很大,只能用O(nlogn) ...
分类:
其他好文 时间:
2020-03-08 19:36:17
阅读次数:
56
题目链接:http://icpc.njust.edu.cn/Problem/Hdu/2795/ 题目大意:有一块长方形木板,从上到下被分成h*w的区域,现要将n个长条放进这些区域中,要求从上到下只要后面空余位置够就放,紧贴最左侧放置。由于给出长度为C的长条之后只要一个区间[l,r]的最大值大于等于C ...
分类:
其他好文 时间:
2020-03-08 15:39:05
阅读次数:
62