通过这道题目还是学到了不少东西的,当时刚拿到这个题目的时候时间已经不多了,因为前面有个C坑到了,看了个大概,然后就往线段树和树状数组方面去想了,对于gcd的区间求一个前缀,再搞一个后缀 瞎弄弄,后来发现错了,题目求的是区间个数。。。又浪费了一段时间,然后回头再看看,大致就想到了暴力枚举,n是10^5,大不了离线先暴力的高出答案,想到一般发现 若假定一个询问输入的数 为 X,那么另一个 能够 y...
分类:
其他好文 时间:
2015-04-01 19:59:00
阅读次数:
116
士兵杀敌(三)
时间限制:2000 ms | 内存限制:65535 KB
难度:5
描述
南将军统率着N个士兵,士兵分别编号为1~N,南将军经常爱拿某一段编号内杀敌数最高的人与杀敌数最低的人进行比较,计算出两个人的杀敌数差值,用这种方法一方面能鼓舞杀敌数高的人,另一方面也算是批评杀敌数低的人,起到了很好的效果。
所以,南将军经常问军师小工第i号士兵到第j号士兵中,杀敌数最高的人...
分类:
编程语言 时间:
2015-04-01 17:48:17
阅读次数:
170
RMQ问题,全名(Range Minimum/Maximum Query),是求给定区间中的最值问题。
主要方法及复杂度如下:
1、朴素(即搜索),O(n)-O(qn) online。
2、线段树,O(n)-O(qlogn) online。
3、Sparse_Table(实质是动态规划),O(nlogn)-O(1) online。
4、RMQ标准算法:先规约成LCA(Lowest C...
分类:
编程语言 时间:
2015-04-01 17:43:37
阅读次数:
174
这题可以把问题转化为,对于一个位置,限制的位置必然是,递增时候,小于他本身,或者递减时候,大于他本身的位置,然后在这个区间中,寻找最大(小)值的位置,这样利用线段树维护即可,对于一个限制位置,可以先把数字离散化掉,然后用权值做节点很容易就处理出来了,然后第二个问题就是普通的rmq问题
代码:
#include
#include
#include
using namespace std;
...
分类:
其他好文 时间:
2015-04-01 15:24:52
阅读次数:
157
原题地址模拟题,naive算法即可过,想着顺便练习一下ST吧,结果还超时了。。。看来ST真不适合处理动态修改的问题,连naive算法的效率都不如。超时的ST代码: 1 #include 2 3 using namespace std; 4 5 #define MAX_NODE 10008 6 ...
分类:
其他好文 时间:
2015-04-01 15:16:09
阅读次数:
166
原题地址Spare Table练习记得用scanf和printf输入输出,否则会TLE代码: 1 #include 2 #include 3 #include 4 5 using namespace std; 6 7 #define MAX_SIZE 1000010 8 9 int N,...
分类:
编程语言 时间:
2015-04-01 10:49:22
阅读次数:
156
Description小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的音乐。 这架超级钢琴可以弹奏出n个音符,编号为1至n。第i个音符的美妙度为Ai,其中Ai可正可负。 一个“超级和弦”由若干个编号连续的音符组成,包含的音符个数不少于L且不多于R。我们定义超级和弦的美妙度为其包含的所有音符的美妙度之和。两个超级和弦被认为是相同的,当且仅当这两个...
分类:
其他好文 时间:
2015-03-31 09:17:06
阅读次数:
238
1.定义 RMQ,Range Min/Max Query,区间最小/大值查询。 对于数组A, 定义Query(i,j)= min {Ai,Ai+1,…Aj},即为RMQ问题。 算法思想: 使用Tarjan的Sparse-Table算法,简称ST算法。 令d(i,j)表示从i开始的,长度为2^j的区间...
分类:
其他好文 时间:
2015-03-28 01:02:27
阅读次数:
294
线段树,没了..-----------------------------------------------------------------------------------------#include#include#include#include#include#define rep(i...
分类:
其他好文 时间:
2015-03-27 23:43:01
阅读次数:
149
题目链接:点击打开链接题意:给定n座山以下n个数字表示n座山的高度若这座山u合法,则要满足:1、若u的左边存在比u高的山,设v是u左边距离u近期的且严格比u高的山,在[v,u]之间至少有一座山x,使得x和u的高度差>=150002、右边也同理。同一时候满足1、2的情况则算合法。问:输出全部合法的山。...
分类:
其他好文 时间:
2015-03-21 19:51:54
阅读次数:
115