题目:

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)的更多相关文章

  1. 线段树模板hdu 1754:I Hate It

    I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  2. 线段树模板 hdu 1166 敌兵布阵

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  3. 线段树模板hdu 1166:敌兵布阵

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  4. hdu 4819 二维线段树模板

    /* HDU 4819 Mosaic 题意:查询某个矩形内的最大最小值, 修改矩形内某点的值为该矩形(Mi+MA)/2; 二维线段树模板: 区间最值,单点更新. */ #include<bits ...

  5. HDU 1166 线段树模板&树状数组模板

    HDU1166 上好的线段树模板&&树状数组模板 自己写的第一棵线段树&第一棵树状数组 莫名的兴奋 线段树: #include <cstdio> using nam ...

  6. 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 ...

  7. HDU1166:敌兵布阵(线段树模板)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  8. [AHOI 2009] 维护序列(线段树模板题)

    1798: [Ahoi2009]Seq 维护序列seq Time Limit: 30 Sec  Memory Limit: 64 MB Description 老师交给小可可一个维护数列的任务,现在小 ...

  9. hdu1754 I hate it线段树模板 区间最值查询

    题目链接:这道题是线段树,树状数组最基础的问题 两种分类方式:按照更新对象和查询对象 单点更新,区间查询; 区间更新,单点查询; 按照整体维护的对象: 维护前缀和; 维护区间最值. 线段树模板代码 # ...

  10. P3373 线段树模板

    好,这是一个线段树模板. #include <cstdio> using namespace std; ; long long int sum[N],tag1[N],tag2[N],mo; ...

随机推荐

  1. mac中svn服务器的搭建以及如何在eclipse中使用

    mac自带了svn客户端和服务端功能. 1.查看svn版本 svnserve --version yintingtingdeMacBook-Pro:~ yintingting$ svnserve -- ...

  2. Linux free -m 详解命令

    如下显示free是显示的当前内存的使用,-m的意思是M字节来显示内容.我们来一起看看. 1 2 3 4 5 6 $ free -m                total       used    ...

  3. SimpleDateFormat线程不安全

    http://www.cnblogs.com/peida/archive/2013/05/31/3070790.html dateUtil替换

  4. 25.纯 CSS 创作一个慧星拖尾效果的 loader 动画

    原文地址:https://segmentfault.com/a/1190000014916281 简化地址:https://codepen.io/pen/?editors=1100 HTML代码: & ...

  5. 20165304 实验二 Java面向对象程序设计

    一.面向对象程序设计1--单元测试和TDD 实验要求 1.参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST 完成单元测试的学习 2 ...

  6. web安全/渗透测试--1--web安全原则

    web 安全:  https://blog.csdn.net/wutianxu123/article/category/8037453/2 web安全原则 安全应该是系统开发之初就考虑的问题.换句话说 ...

  7. php 中文转拼音,可以只转首字母,可以设置utf8、gbk

    <?php class Pinyin { /** * 默认是gb编码,第二个参数随意设置即为utf8编 * @param type $isInitial 是否只返回首字母 * @return t ...

  8. js 定义一个对象并且给对象赋值方法

    var  obj={}; obj.a="12"; obj.b="13" var o ={}; o.jsonObj=obj; 取得属性值直接用 obj.a; ob ...

  9. mac下shell给文件名批量加前缀

    用rename命令 如果没装的话执行下面这个命令安装rename brew install rename rename 's/^/logo_/' *.png

  10. JavaScript:几种常用循环

    ##循环数组的方法 1.for循环 for(let i = 0;i < ary.length;i++){ console.log(ary[i]); } 2.forEach ary.forEach ...