线段树模板(HDU 6356 Glad You Came)
题目:
HDU 6356
http://acm.hdu.edu.cn/showproblem.php?pid=6356
很裸的线段树
#include<bits/stdc++.h>
#define fi first
#define se second
#define INF 0x3f3f3f3f
#define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define pqueue priority_queue
#define NEW(a,b) memset(a,b,sizeof(a))
#define si(x) scanf("%lld",&x)
#define lowbit(x) (x&(-x))
#define lc (d<<1)
#define rc (d<<1|1)
#define eps 1e-9
const double pi=4.0*atan(1.0);
const double e=exp(1.0);
const int maxn=1e7+;
typedef long long LL;
typedef unsigned long long ULL;
//typedef pair<LL,LL> P;
const LL mod=**;
const ULL base=1e7+;
using namespace std;
unsigned x,y,z,w;
unsigned RNG(){
x=x^(x<<);
x=x^(x>>);
x=x^(x<<);
x=x^(x>>);
w=x^(y^z);
x=y;
y=z;
z=w;
return z;
}
struct node{
int l,r,mi,lz;
}a[maxn];
void build(int l,int r,int d){
a[d].l=l;
a[d].r=r;
a[d].mi=a[d].lz=;
if(l!=r){
int mid=(a[d].l+a[d].r)>>;
build(l,mid,lc);
build(mid+,r,rc);
}
}
void add(int l,int r,int d,int x){
if(l==a[d].l&&r==a[d].r){
a[d].lz=max(x,a[d].lz);
a[d].mi=max(x,a[d].mi);
return ;
}
if(x<=a[d].mi){
return ;
}
int mid=(a[d].l+a[d].r)>>;
if(a[d].lz!=){
add(a[d].l,mid,lc,a[d].lz);
add(mid+,a[d].r,rc,a[d].lz);
a[d].lz=;
}
if(l>mid){
add(l,r,rc,x);
}
else if(r<=mid){
add(l,r,lc,x);
}
else{
add(l,mid,lc,x);
add(mid+,r,rc,x);
}
a[d].mi=min(a[lc].mi,a[rc].mi);
}
int query(int l,int r,int d){
if(l==a[d].l&&r==a[d].r){
return a[d].mi;
}
int mid=(a[d].l+a[d].r)>>;
if(a[d].lz!=){
add(a[d].l,mid,lc,a[d].lz);
add(mid+,a[d].r,rc,a[d].lz);
a[d].lz=;
}
if(l>mid){
return query(l,r,rc);
}
else if(r<=mid){
return query(l,r,lc);
}
}
int main(){
fio;
int t;
cin>>t;
int n,m;
while(t--){
w=;
cin>>n>>m>>x>>y>>z;
build(,n,);
unsigned f1,f2,f3;
LL l,r,v;
for(int i=;i<=m;i++){
f1=RNG();
f2=RNG();
f3=RNG();
l=min((f1%n)+,(f2%n)+);
r=max((f1%n)+,(f2%n)+);
v=f3%mod;
add(l,r,,v);
}
LL res=;
for(int i=;i<=n;i++){
res^=1ll*i*(query(i,i,));
}
cout<<res<<endl;
}
}
线段树模板(HDU 6356 Glad You Came)的更多相关文章
- 线段树模板hdu 1754:I Hate It
I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- 线段树模板 hdu 1166 敌兵布阵
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- 线段树模板hdu 1166:敌兵布阵
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- hdu 4819 二维线段树模板
/* HDU 4819 Mosaic 题意:查询某个矩形内的最大最小值, 修改矩形内某点的值为该矩形(Mi+MA)/2; 二维线段树模板: 区间最值,单点更新. */ #include<bits ...
- HDU 1166 线段树模板&树状数组模板
HDU1166 上好的线段树模板&&树状数组模板 自己写的第一棵线段树&第一棵树状数组 莫名的兴奋 线段树: #include <cstdio> using nam ...
- HDU 1698 Just a Hook (线段树模板题-区间求和)
Just a Hook In the game of DotA, Pudge’s meat hook is actually the most horrible thing for most of t ...
- HDU1166:敌兵布阵(线段树模板)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- [AHOI 2009] 维护序列(线段树模板题)
1798: [Ahoi2009]Seq 维护序列seq Time Limit: 30 Sec Memory Limit: 64 MB Description 老师交给小可可一个维护数列的任务,现在小 ...
- hdu1754 I hate it线段树模板 区间最值查询
题目链接:这道题是线段树,树状数组最基础的问题 两种分类方式:按照更新对象和查询对象 单点更新,区间查询; 区间更新,单点查询; 按照整体维护的对象: 维护前缀和; 维护区间最值. 线段树模板代码 # ...
- P3373 线段树模板
好,这是一个线段树模板. #include <cstdio> using namespace std; ; long long int sum[N],tag1[N],tag2[N],mo; ...
随机推荐
- windows设置电脑的固定IP
当有需要的人往往想要固定自己的IP进行测试,在我通过手机代理来录制测试带宽时不想因为IP经常变更而影响到我的测试 因此,我想要固定自己的IP 1.想要固定IP说明自己的IP设置成了自动获取方式,这样连 ...
- for循环案例
for循环案例 今天给大家介绍点for循环的案例 1.大马驮2石粮食,中马驮1石粮食,两头小马驮一石粮食,要用100匹马,驮100石粮食,该如何调配? <!DOCTYPE html> &l ...
- 微信小程序笔记<五> 页面管理及生命周期(route)——getCurrentPages()
在小程序中所有页面的路由全部由框架进行管理,而框架以栈的形式维护了当前的所有页面. 当发生路由切换时,页面栈的表现: getCurrentPages() 用于获取当前页面栈的实例,可以把 getCur ...
- Hive Ntile分析函数学习
NTILE(n) 用于将分组数据按照顺序切分成n片,返回当前记录所在的切片值 NTILE不支持ROWS BETWEEN,比如 NTILE(2) OVER(PARTITION BY cookieid O ...
- spring 之 lazy-init Autowired depends-on
1 lazy-init lazy-init是延迟初始化的意思. spring中容器都是尽早的创建和配置所有的单例bean,因此当容器在启动时,就会去配置和创建单例bean. 默认情况下 beans ...
- 1. ibatis 查询的sql列存在相同的列名
如果SQL语句存在两个相同的查询列名,则映射时,取第一个列名的值进行映射 <?xml version="1.0" encoding="UTF-8" ?&g ...
- iframe之父子页面通信
iframe之父子页面通信 1.获取 子页面 的 window 对象 在父页面中,存在如下两个对象 window.frames document.iframeElement.contentWindo ...
- python 3.4 error: Microsoft Visual C++ 10.0 is required(Unable to find vcvarsall.bat)
一些小技巧 我是在windows 64下安装的python3.4 Python 我在安装theano时报这个错,网上找了不少资料.自己摸索着解决了. 你先打开dos界面.我用set命令查看一下: 发现 ...
- js 只允许输入数字
<input id="credit" type="text" class="nummber" onkeyup="value= ...
- day27-反射
1.介绍 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序语 ...