【JSOI 2008】 最大数
【题目链接】
【算法】
很明显,我们可以用线段树解决此题
只需维护区间最值就可以了
【代码】
#include<bits/stdc++.h>
using namespace std;
#define MAXM 200000 int M,D,x,l,lastans,len;
int Max[MAXM*];
char opt; template <typename T> inline void read(T &x) {
int f = ; x = ;
char c = getchar();
for (; !isdigit(c); c = getchar()) { if (c == '-') f = -f; }
for (; isdigit(c); c = getchar()) x = (x << ) + (x << ) + c - '';
x *= f;
}
template <typename T> inline void write(T x) {
if (x < ) { putchar('-'); x = -x; }
if (x > ) write(x/);
putchar(x%+'');
}
template <typename T> inline void writeln(T x) {
write(x);
puts("");
}
inline void push_up(int index) {
Max[index] = max(Max[index<<],Max[index<<|]);
}
inline int query_max(int index,int l,int r,int ql,int qr) {
int mid;
if (l == ql && r == qr) return Max[index];
else {
mid = (l + r) >> ;
if (mid >= qr) return query_max(index<<,l,mid,ql,qr);
else if (mid + <= ql) return query_max(index<<|,mid+,r,ql,qr);
else return max(query_max(index<<,l,mid,ql,mid),query_max(index<<|,mid+,r,mid+,qr));
}
}
inline void ins(int index,int l,int r,int pos,int val) {
int mid;
if (l == r) {
Max[index] = val;
return;
}
mid = (l + r) >> ;
if (mid >= pos) ins(index<<,l,mid,pos,val);
else ins(index<<|,mid+,r,pos,val);
push_up(index);
} int main() { read(M); read(D); while (M--) {
opt = getchar();
if (opt == 'Q') {
read(l);
writeln(lastans = query_max(,,MAXM,len-l+,len));
} else {
read(x);
x = (x + lastans) % D;
ins(,,MAXM,++len,x);
}
} return ; }
【JSOI 2008】 最大数的更多相关文章
- [JSOI 2008]最大数
Description 题库链接 给你一个序列,初始为空.资瓷下列操作: 在序列末尾加上一个数: 查询后 \(L\) 个数中的最大值. 操作总数为 \(m\) , \(1\leq m\leq 2000 ...
- [BZOJ 1013][JSOI 2008] 球形空间产生器sphere 题解(高斯消元)
[BZOJ 1013][JSOI 2008] 球形空间产生器sphere Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球 面 ...
- [BZOJ1074] [luogu 4036] [JSOI 2008] 火星人 (二分答案+哈希+fhq treap)
[BZOJ1074] [luogu 4036] [JSOI 2008] 火星人 (二分答案+哈希+fhq treap) 题面 给出一个长度为n的字符串,m个操作,字符串仅包含小写英文字母 操作1:在k ...
- JSOI 2008 最小生成树计数
JSOI 2008 最小生成树计数 今天的题目终于良心一点辣 一个套路+模版题. 考虑昨天讲的那几个结论,我们有当我们只保留最小生成树中权值不超过 $ k $ 的边的时候形成的联通块是一定的. 我们可 ...
- 【BZOJ 1016】【JSOI 2008】最小生成树计数
http://www.lydsy.com/JudgeOnline/problem.php?id=1016 统计每一个边权在最小生成树中使用的次数,这个次数在任何一个最小生成树中都是固定的(归纳证明). ...
- 【BZOJ 1014】【JSOI 2008】火星人prefix
看了<Hash在信息学竞赛中的一类应用>中的例题3,这道题很类似啊,只不过没有删点和区间翻转. 用Splay维护字符串哈希,加点改点什么的就不用说了,查询时二分答案,这样时间复杂度是$O( ...
- 【BZOJ 1568】【JSOI 2008】Blue Mary开公司
经典的splay维护凸壳,但是看了看zky学长的题解最后决定写线段树维护标记永久化. Round1考到了这个之后一直没有理解标记永久化,CTSC也因为自己的缺陷丢掉了一些部分分,so sad 看来以后 ...
- JSOI 2008 火星人prefix
FROM http://www.lydsy.com/JudgeOnline/problem.php?id=1014 LCP问题 给定串 S[0..n] , 对于一对(a,b)其中0<a,b< ...
- [JSOI 2008]星球大战starwar
Description 题库链接 给你一张 \(n\) 点, \(m\) 条边的无向图,每次摧毁一个点,问你剩下几个联通块. \(1\leq n\leq 2m,1\leq m\leq 200000\) ...
随机推荐
- C#中对字符串的加密和解密
加密: /// <summary> /// 对字符串进行加密 /// </summary> /// <param name="proclaimText" ...
- hdu 5195 DZY Loves Topological Sorting BestCoder Round #35 1002 [ 拓扑排序 + 优先队列 || 线段树 ]
传送门 DZY Loves Topological Sorting Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131 ...
- msp430项目编程27
msp430中项目---多机通信系统 1.I2C工作原理 2.I2C通信协议 3.代码(显示部分) 4.代码(功能实现) 5.项目总结 msp430项目编程 msp430入门学习
- SQL SERVER 2012 第五章 创建和修改数据表 の SQL SERVER中的对象名
[ServerName.[DataBaseName.[SchemeName.]]]ObjectName 服务器名,数据库名,模式名,对象名 其中模式是一个新出的坑爹的东西.
- (二)Commonjs规范与模块化
在之前的学习中我们使用require()来引入我们需要的包,这其实就是模块化,各模块相互独立,可以通过某种方式引入别的模块.而这些引入方式都是遵循一定的规范的,这就是CommonJS规范. 一.Com ...
- 登录页面练习servlet
登录练习: 1创建登录页面 创建servlet进行登录页面请求 2点击登录完成操作 浏览器发送请求到服务器(用户信息+其他数据 )3服务器调用对应的servlet进行处理 设置响应编码格式 获取请求信 ...
- Spring的@Qualifier注解
以下内容引用自http://wiki.jikexueyuan.com/project/spring/annotation-based-configuration/spring-qualifier-an ...
- ArcGIS Server 9.3集群部署(多som+多soc)
关键字:集群 SOC 分布式 ArcGIS Server http://t.cn/8F8yPF3 http://t.cn/8F8yM4b http://www.netfoucs.com/nj19862 ...
- linux 查找目录下的文件内容并替换(批量)
2.sed和grep配合 命令:sed -i s/yyyy/xxxx/g `grep yyyy -rl --include="*.txt" ./` 作用:将当前目录(包括子目录)中 ...
- Use JavaScript to Export Your Data as CSV
原文: http://halistechnology.com/2015/05/28/use-javascript-to-export-your-data-as-csv/ --------------- ...