2018 Multi-University Training Contest 4-Glad You Came(hdu 6356)
一、思路
线段树维护一个区间最小值,然后对于每次操作,做区间更新即可。要注意的是,在更新的时候,记得剪枝:如果当前更新的值$v \le minv$(minv为当前线段树节点所管辖区间的最小值),直接返回。否则,TLE。运行时间1500+ms,比标程2800+ms快将近两倍。
二、代码
#include<bits/stdc++.h>
using namespace std;
#define min(x, y) (x < y ? x : y)
#define max(x, y) (x > y ? x : y)
#define MAXN 100100
unsigned X, Y, Z;
struct node {
int mv, lazy;
} data[MAXN * ];
int n, m;
inline void down(int rt) {
if(data[rt].lazy) {
, rch = rt << | ;
if(data[lch].lazy < data[rt].lazy)data[lch].lazy = data[rt].lazy;
if(data[lch].mv < data[rt].lazy)data[lch].mv = data[rt].lazy;
if(data[rch].lazy < data[rt].lazy)data[rch].lazy = data[rt].lazy;
if(data[rch].mv < data[rt].lazy)data[rch].mv = data[rt].lazy;
data[rt].lazy = ;
}
}
inline , , int r = n) {
if(l > ur || r < ul)return;
if(v <= data[rt].mv)return;
if(l >= ul && r <= ur) {
if(data[rt].mv < v)data[rt].mv = v, data[rt].lazy = v;
return;
}
down(rt);
;
update(ul, ur, v, rt << , l, mid);
update(ul, ur, v, rt << | , mid + , r);
data[rt].mv = min(data[rt << ].mv, data[rt << | ].mv);
}
inline , , int r = n) {
if(l == r)return data[rt].mv;
down(rt);
;
, l, mid);
| , mid + , r);
}
inline unsigned rng61() {
X ^= X << ;
X ^= X >> ;
X ^= X << ;
X ^= X >> ;
unsigned W = X ^ Y ^ Z;
X = Y; Y = Z; Z = W;
return Z;
}
int main() {
// freopen("1007.in", "r", stdin);
// freopen("1007.out", "w", stdout);
<< ) - ;
scanf("%d", &T);
; ca < T; ++ca) {
scanf("%d%d%u%u%u", &n, &m, &X, &Y, &Z);
memset(data, , ]) * ((n << ) + ));
; jj < m; ++jj) {
unsigned f1 = rng61(), f2 = rng61();
if(f1 >= n)f1 %= n;
if(f2 >= n)f2 %= n;
, ur = f2 + , v = rng61() & mod;
if(ul > ur)swap(ul, ur);
update(ul, ur, v);
}
;
; i <= n; ++i)ans ^= 1LL * i * query(i);
printf("%lld\n", ans);
}
;
}
2018 Multi-University Training Contest 4-Glad You Came(hdu 6356)的更多相关文章
- 2018 Nowcoder Multi-University Training Contest 2
目录 Contest Info Solutions A. run D. monrey G. transform H. travel I. car J. farm Contest Info Practi ...
- 2018 Nowcoder Multi-University Training Contest 1
Practice Link J. Different Integers 题意: 给出\(n\)个数,每次询问\((l_i, r_i)\),表示\(a_1, \cdots, a_i, a_j, \cdo ...
- 2018 Nowcoder Multi-University Training Contest 5
Practice Link A. gpa 题意: 有\(n\)门课程,每门课程的学分为\(s_i\),绩点为\(c_i\),要求最多删除\(k\)门课程,使得gpa最高. gpa计算方式如下: \[ ...
- 2018 Nowcoder Multi-University Training Contest 10
Practice Link J. Rikka with Nickname 题意: 给出\(n\)个字符串,要求依次合并两个串\(s, t\),满足将\(t\)合并到\(s\)中变成\(r\),使得\( ...
- 【HDU 2014 Multi-University Training Contest 1 1002】/【HDU 4862】Jump
多校训练就这么华丽丽的到了 ,于是乎各种华丽丽的被虐也開始了. 这是多校的1002; 最小费用最大流. 题目大意: 有n*m个方格,每一个方格都一个的十进制一位的数.你能够操作K次. 对于每一次操作, ...
- 【2014 Multi-University Training Contest 3 1002】/【HDU 4888】 Redraw Beautiful Drawings
不easy啊.最终能够补第二个题了.! 顺便说一句:模版写残了就不要怪出题人啊 ~ (这残废模版研究了好长时间才找出错) 题目大意: 有一个n*m的矩阵.每个格子里都将有一个数.给你每一行数字之和和每 ...
- 【2014 Multi-University Training Contest 2 1002】/【HDU 4873】 ZCC Loves Intersection
果然,或滥用零件,啥都不说了.我们欣慰地学习阅读.这两天残疾儿童是数学. 这是求所需的问题,不明确.贴上官方的解题报告. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi ...
- 2017 Multi-University Training Contest - Team 5——HDU6095&&HDU6090&&HDU
HDU6095——Rikka with Competition 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6095 题目意思:抱歉虽然是签到题,现场 ...
- HDU 2018 Multi-University Training Contest 3 Problem A. Ascending Rating 【单调队列优化】
任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6319 Problem A. Ascending Rating Time Limit: 10000/500 ...
- 2018 Multi-University Training Contest 2
题目链接:2018 Multi-University Training Contest 2 6318 Swaps and Inversions 题意:sum=x*逆序个数+交换次数*y,使sum最小 ...
随机推荐
- 组学航母----OMICtools
OMICtools可谓是组学研究的航空母舰,其收集了基因组学.转录组学.蛋白质组学和代谢组学等分析研究常用的4400余个工具和数据库.它允许用户submit自己的工具/数据库,每一个上传的工具/数据库 ...
- 理解flex布局
我们传统的布局方式是基于在盒子模型下的,依赖于display属性的,position属性的或者是float属性的,但是在传统的布局上面并不好布局; 比如我们想让某个元素垂直居中的话,我们常见的会让其元 ...
- vue全家桶实现笔记本功能
一个通过vue实现的练手小项目,数据保存和导出通过node进行处理 成品截图: 安装vue-cli,webpack: cnpm install webpack -g cnpm install vue- ...
- hdu2177威佐夫博弈
输的话输出0,赢就输出1并且输出第一步走后的数目 威佐夫博弈判断胜负 原理及常见题型求法: http://blog.csdn.net/y990041769/article/details/216940 ...
- 快速切题 sgu134.Centroid 树形dp
134. Centroid time limit per test: 0.25 sec. memory limit per test: 4096 KB You are given an undirec ...
- 快速切题 sgu133.Border 离线
133. Border time limit per test: 0.25 sec. memory limit per test: 4096 KB Along the border between s ...
- Alpha阶段敏捷冲刺---Day2
一.Daily Scrum Meeting照片 PS:不要问我们为什么少了个人,某位不愿说出姓名的大佬强行申请要拍照 二.今天冲刺情况反馈 今天我们依旧在五社区五号楼719进行我们的每日立会.经过昨天 ...
- protel 99se 全部焊盘和过孔补泪滴,很多都是失败的,对板子有影响吗?补泪滴的作用?
泪滴 是焊盘与导线或者是导线与导孔之间的滴装连接过度,设置泪滴的目的是在电路板受到巨大外力的冲撞时,避免导线与焊盘或者导线与导孔的接触点断开,另外,设置泪滴也可使PCB电路板显得更加美观.te ...
- 使用peach工具进行fuzz测试
本文简要介绍了Fuzz 工具Peach的使用,并通过文件格式 Fuzz举例阐述了 Peach Pit 文件的编写. 本文转自“绿盟科技博客”:http://blog.nsfocus.net/peach ...
- bootstrap table教程--后台数据绑定、特殊列处理、排序
上一篇文章介绍了基本的使用教程.本节主要介绍Bootstrap的后台数据绑定.特殊列处理及列的排序功能 1.数据绑定 一般做程序设计,很少是使用json文件直接绑定数据.基本上我们都是使用编程语言进行 ...