线段树模板(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; ...
随机推荐
- python项目入门之 安装、创建
3年前接触python,那时候还是文本格式进行学习,但是由于一直没有项目实践,所以就搁浅了 今天,python如火如荼,适用于人工智能等多领域,已经成为了语言界的翘楚 python有非常多的优点,开源 ...
- Object-c基本语法
// // main.m // OCbasic1 // // Created by apple on 14-8-5. // Copyright (c) 2014年 苹果IOS软件开发者. Al ...
- 51.纯 CSS 创作一个雷达扫描动画
原文地址:https://segmentfault.com/a/1190000015283286 感想:linear-gradient() 刷新了我的认知,它可以并列多个而不会被覆盖,并列使用时用 , ...
- xml文件中的${}
看到了${}这样的表达式,脑海里面第一印象是不是我们jsp中的EL表达式?! 哈哈... 不过,这个真不是EL表达式,Spring提供了自己的EL表达式,可是它的格式是#{} so.... ${key ...
- Shell 编程 (变量和条件测试)
变量: 1 . 变量声明 直接使用变量 + 赋值 #!/bin/bash NAME='HELLO WORD' echo $NAME 使用 declare 关键字声明 declare(选项)(参数) + ...
- Linux kafka 单机安装
Kafka地址(选择最新地址1.1.1) http://archive.apache.org/dist/kafka/
- html to docx
public static void main(String[] args) throws Exception{ //创建 POIFSFileSystem 对象 POIFSFileSystem poi ...
- struts2中的constant介绍之struts.objectFactory与spring的整合
struts2提供给我们更为灵活的设计,他的很多东西都是可以手动配置的,下面介绍下他的一些 常用的constant作用和配置 struts.objectFactory这个属性用于说明Struts2的 ...
- UI5-学习篇-18-云端UI5应用部署到Fiori Launchpad
UI5应用发布SCP 选择UI5应用项目,右键 Deploy - Deploy to SAP Cloud Platform 输入云平台子账号,项目名称,应用名称,如下图所示: 点击Open the r ...
- Extjs4 自定义颜色选择器ColorField
使用元素的颜色选择器 Ext.create("Ext.picker.Color",{ renderTo:Ext.getBody(), listeners:{ select:func ...