HDU-6356 Glad You Came (线段树)
题目链接:Glad You Came
题意:数组有n个数初始为0,m个询问,每个询问给出L R V(按照给定函数生成),将数组的下标L到R的数与V取较大值,最后输出给定的公式结果。
题意:哇~打比赛的时候想用两个线段树去维护,一棵维护每个结点所代表区间的最大值,一棵维护每个结点所代表区间的异或和。不过这题比我想的要暴力~~~直接维护最大值,最后遍历整棵树将最大值pushdown下去就可以了。~
#include <bits/stdc++.h>
#define pi acos(-1)
#define fastcin ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
using namespace std;
typedef long long LL;
typedef pair<int, int> PII;
const int INF = 0x3f3f3f3f; // 不能加负号!!!
const LL LL_INF = 0x3f3f3f3f3f3f3f3f;//4e18 ~= 2^62
const int maxn = + ;
const LL mod = pow(, );
LL maxx[maxn<<];
LL a[maxn];
LL ans ;
unsigned int RNG61(unsigned int &x, unsigned int &y, unsigned int &z)
{
x = x^(x<<);
x = x^(x>>);
x = x^(x<<);
x = x^(x>>);
unsigned int w = x^(y^z);
x = y;
y = z;
z = w;
return z;
} void PushDown(int rt)
{
maxx[rt<<] = max(maxx[rt<<],maxx[rt]);
maxx[rt<<|] = max(maxx[rt<<|],maxx[rt]);
} //区间更新,假设A[L,R]+=C
void update(int L, int R, LL v, int l, int r, int rt)
{
//cout<<l<<"____"<<r<<"....."<<rt<<endl;
if(maxx[rt] > v) return;
if(L<=l && r<=R){
maxx[rt] = max(maxx[rt],v);
return ;
}
int mid = (l+r)>>;
PushDown(rt);
if(L <= mid) update(L, R, v, l, mid, rt<<);
if(R > mid) update(L, R, v, mid+, r, rt<<|);
// PushUp(rt);
}
void get(int l,int r,int rt){
if(l == r){
ans ^= l*maxx[rt];
return ;
}
PushDown(rt);
int mid = (l+r)>>;
get(l,mid,rt<<);
get(mid+,r,rt<<|);
}
int main()
{
int T;
cin>>T;
while(T--){
int n, m, l, r, v;
memset(maxx,,sizeof(maxx));
memset(a,,sizeof(a));
unsigned int X, Y, Z;
scanf("%d%d%u%u%u", &n, &m, &X, &Y, &Z);
unsigned int t1, t2, t3;
for(int i=; i<m; i++){
t1 = RNG61(X, Y, Z);
t2 = RNG61(X, Y, Z);
t3 = RNG61(X, Y, Z);
l = min((t1%n)+, (t2%n)+);
r = max((t1%n)+, (t2%n)+);
v = (t3 % mod + mod) %mod;
update(l, r, v, , n, );
}
ans = ;
get(,n,);
printf("%lld\n", ans);
}
}
HDU-6356 Glad You Came (线段树)的更多相关文章
- HDU 6356.Glad You Came-线段树(区间更新+剪枝) (2018 Multi-University Training Contest 5 1007)
6356.Glad You Came 题意就是给你一个随机生成函数,然后从随机函数里确定查询的左右区间以及要更新的val值.然后最后求一下异或和就可以了. 线段树,区间最大值和最小值维护一下,因为数据 ...
- 线段树模板(HDU 6356 Glad You Came)
题目: HDU 6356 http://acm.hdu.edu.cn/showproblem.php?pid=6356 很裸的线段树 #include<bits/stdc++.h> #de ...
- HDU 3016 Man Down (线段树+dp)
HDU 3016 Man Down (线段树+dp) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...
- HDU.5692 Snacks ( DFS序 线段树维护最大值 )
HDU.5692 Snacks ( DFS序 线段树维护最大值 ) 题意分析 给出一颗树,节点标号为0-n,每个节点有一定权值,并且规定0号为根节点.有两种操作:操作一为询问,给出一个节点x,求从0号 ...
- HDU.1556 Color the ball (线段树 区间更新 单点查询)
HDU.1556 Color the ball (线段树 区间更新 单点查询) 题意分析 注意一下pushdown 和 pushup 模板类的题还真不能自己套啊,手写一遍才行 代码总览 #includ ...
- HDU.1166 敌兵布阵 (线段树 单点更新 区间查询)
HDU.1166 敌兵布阵 (线段树 单点更新 区间查询) 题意分析 加深理解,重写一遍 代码总览 #include <bits/stdc++.h> #define nmax 100000 ...
- HDU.1394 Minimum Inversion Number (线段树 单点更新 区间求和 逆序对)
HDU.1394 Minimum Inversion Number (线段树 单点更新 区间求和 逆序对) 题意分析 给出n个数的序列,a1,a2,a3--an,ai∈[0,n-1],求环序列中逆序对 ...
- HDU.1689 Just a Hook (线段树 区间替换 区间总和)
HDU.1689 Just a Hook (线段树 区间替换 区间总和) 题意分析 一开始叶子节点均为1,操作为将[L,R]区间全部替换成C,求总区间[1,N]和 线段树维护区间和 . 建树的时候初始 ...
- hdu 1754 I Hate It 线段树 点改动
// hdu 1754 I Hate It 线段树 点改动 // // 不多说,裸的点改动 // // 继续练 #include <algorithm> #include <bits ...
- hdu 1166 敌兵布阵 线段树 点更新
// hdu 1166 敌兵布阵 线段树 点更新 // // 这道题裸的线段树的点更新,直接写就能够了 // // 一直以来想要进线段树的坑,结果一直没有跳进去,今天算是跳进去吧, // 尽管十分简单 ...
随机推荐
- 使用Webpack对Css文件压缩处理的思考
问题的起因: 使用 bulma.css ,通过webpack打包后样式出错,查看压缩代码,发现代码从css的 long hand 属性被压缩为 short hand(PS: 什么是long hand ...
- Git 命令快速浏览
Git 命令快速浏览 创建 Git 可管理的仓库 git init 查看当前仓库的状态 git status 添加到仓库,实际上是添加到暂存区 git add [-A | --all] git add ...
- java io详解(1)
一.java io结构图 二.java io的开始:文件 三.字节流: 一.java io结构图 流分类: 1.Java的字节流 InputStream是所有字节输入流的祖先,而OutputSt ...
- How to add hyperlink in JLabel
You can do this using a JLabel, but an alternative would be to style a JButton. That way, you don't ...
- 【mpu6050】学习笔记——基础知识点记录
如图: 假设为三维空间有一个向量R 满足关系: 即为加速度计的x轴,y轴,z轴. 对于MPU6050 其求出的数值为: 分母为灵敏度, ADCRx为读出值. 我关心的是Axr,Ayr,Azr即 ...
- MySQL主从延迟如何解决?
我们知道生产环境中经常会遇到MySQL主从延迟问题,从原理上也能看出主库的事务提交是并发模式,而从库只有一个SQL线程负责解析,所以本身上就可能存在延迟. 延迟的主要原因在于: 1.从库的配置往往没有 ...
- SAP业务蓝图设计的一些想法
SAP蓝图设计是面向业务流程的,目前国内很多软件公司在做蓝图设计(概要设计)都是面向功能的,而对于用户来说,需要的不是一个个功能点,而是要实现具体的业务.功能点是一个点,而业务流程是一条线.是在梳理业 ...
- beta冲刺————第一天(1/5)
人员的再次分配: 调走人员:陈裕鹏(原来在本队伍主要进行文章推荐算法的设计) 调入人员:陈邡(原Dipper团队,负责游戏内容的策划案,以及做一些后端的探索工作.) 现队员工作划分: 王国华,吴君毅, ...
- 阿里八八Alpha阶段Scrum(8/12)
今日进度 叶文滔: 已经成功解决兼容性问题,目前正在嵌入多级按钮API,预计明天可以完成 王国超: 今天终于debug了,被卡了几天的fragment嵌套listview终于成功了 俞鋆: 研究了一下 ...
- RxJS--Subject
Subject是Observable(可观察对象)的子类,subject是多播的,允许将值多播给多个observer(观察者),普通observable是单播. 每一个Subject都是一个Obser ...