5312: 冒险

2024-03-27 04:48
文章标签 冒险 5312

本文主要是介绍5312: 冒险,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题解:链接
c++代码如下:

#include<bits/stdc++.h>
#define rep(i,x,y) for(register int i = x ;i <= y; ++ i)
#define repd(i,x,y) for(register int i = x ; i >= y; -- i)
using namespace std;
typedef long long ll;
template<typename T>inline void read(T&x)
{char c;int sign = 1;x = 0;do { c = getchar(); if(c == '-') sign = -1; }while(!isdigit(c));do { x = x * 10 + c - '0'; c = getchar(); }while(isdigit(c));x *= sign;
}const int N = 2e5+50;
int a[N],n,m;
struct Segment_tree
{int val[N << 2],as[N<<2],os[N<<2];int lzy[N << 2][2];void build(int id,int l,int r){lzy[id][1] = lzy[id][0] = -1; if(l == r){val[id] = a[l];as[id] = os[id] = a[l];return ;}int mid = l + r >> 1;build(id<<1,l,mid); build(id<<1|1,mid+1,r);val[id] = max(val[id<<1],val[id<<1|1]);as[id] = as[id<<1]&as[id<<1|1];os[id] = os[id<<1]|os[id<<1|1];}inline void put_down(int id){if(~lzy[id][0]){val[id<<1] |= lzy[id][0];val[id<<1|1] |= lzy[id][0];as[id<<1] |= lzy[id][0];as[id<<1|1] |= lzy[id][0];os[id<<1] |= lzy[id][0];os[id<<1|1] |= lzy[id][0];if(~lzy[id<<1][1]) lzy[id<<1][1] |= lzy[id][0];if(~lzy[id<<1][0]) lzy[id<<1][0] |= lzy[id][0];else lzy[id<<1][0] = lzy[id][0]; if(~lzy[id<<1|1][1]) lzy[id<<1|1][1] |= lzy[id][0];if(~lzy[id<<1|1][0]) lzy[id<<1|1][0] |= lzy[id][0];else lzy[id<<1|1][0] = lzy[id][0];lzy[id][0] = -1;}if(~lzy[id][1]){val[id<<1] &= lzy[id][1];val[id<<1|1] &= lzy[id][1];as[id<<1] &= lzy[id][1];as[id<<1|1] &= lzy[id][1];os[id<<1] &= lzy[id][1];os[id<<1|1] &= lzy[id][1];if(~lzy[id<<1][1]) lzy[id<<1][1] &= lzy[id][1];else lzy[id<<1][1] = lzy[id][1]; if(~lzy[id<<1|1][1]) lzy[id<<1|1][1] &= lzy[id][1];else lzy[id<<1|1][1] = lzy[id][1];lzy[id][1] = -1;}}inline int get(int id) { return as[id]^os[id];}void update(int id,int l,int r,int L,int R,int w,bool k){if(l >= L && r <= R && !(get(id)&w) ){if(k){val[id] &= w; as[id] &= w; os[id] &= w;if(~lzy[id][k]) lzy[id][k] &= w;else lzy[id][k] = w;}else{val[id] |= w; os[id] |= w; as[id] |= w;if(~lzy[id][k^1]) lzy[id][k^1] |= w;if(~lzy[id][k]) lzy[id][k] |= w;else lzy[id][k] = w;}return ;}put_down(id);int mid = l + r >> 1;if( L > mid ) update(id<<1|1,mid+1,r,L,R,w,k);else if(R <= mid) update(id<<1,l,mid,L,R,w,k);else update(id<<1,l,mid,L,mid,w,k) , update(id<<1|1,mid+1,r,mid+1,R,w,k);val[id] = max(val[id<<1],val[id<<1|1]); as[id] = as[id<<1]&as[id<<1|1];os[id] = os[id<<1]|os[id<<1|1];}int query(int id,int l,int r,int L,int R){if(l == L && r == R) return val[id];put_down(id);int mid = l + r >> 1;if( L > mid ) return query(id<<1|1,mid+1,r,L,R);else if(R <= mid) return query(id<<1,l,mid,L,R);else return max(query(id<<1,l,mid,L,mid),query(id<<1|1,mid+1,r,mid+1,R));}
}seg;int main()
{read(n); read(m);rep(i,1,n) read(a[i]);seg.build(1,1,n);int op,l,r,x;rep(i,1,m){read(op); read(l); read(r);if(op == 1){read(x);seg.update(1,1,n,l,r,x,1);}if(op == 2){read(x);seg.update(1,1,n,l,r,x,0);}if(op == 3){printf("%d\n",seg.query(1,1,n,l,r));}}return 0;
}

这篇关于5312: 冒险的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/850986

相关文章

对生活保持热情的秘诀之一: 时常冒险

对生活保持热情的秘诀之一: 时常冒险 近日我和一个朋友开车出行的时候,向他讲了我的一些计划,这些计划让我十分兴奋。我提到自己正在写的一本新书,一篇文章,以及在沙漠里骑摩托车冒险的新爱好。 他打断我说:“你是怎么对事情保持如此积极、如此兴奋的心态呢?” 这个问题来得有些猝不及防。我真的没有想过“为什么”要做这些事情。但是一旦开始考虑这个问题,我就发现,这些让我动力十足的活动都有一个共同点,就是

The First项目报告:一场由社区驱动的去中心化加密冒险—Turbo

2023年3月14日,由OpenAI公司开发自回归语言模型GPT-4发布上线,一时之间引发AI智能领域的轩然大波,同时受到影响的还有加密行业,一众AI代币纷纷出现大幅度拉升。与此同时,一款名为Turbo的Meme代币出现在市场中,这是一场受人工智能力量的启发而出现的MeMe代币,该项目的创建者向 GPT-4提出了一个简单的挑战:创造下一个伟大的 meme 币,预算仅为 69 美元。 一、Tu

10月书讯 | 跟着泰拉去冒险

题图 |rawpixel.com- www.freepik.com 十月书讯姗姗来迟,本月好书多多,让人爱不释手。很多小伙伴可能都看过贝爷的《跟着贝尔去冒险》,荒野求生满满的新鲜刺激。不过这次有一位叫泰拉的小朋友邀请你跟她去计算机世界来一场冒险的旅行,新奇又好玩。如果你也对计算机世界感兴趣,请随着泰拉的脚步一起来《计算机世界大冒险》这本书中探索吧。 近年来很多跨国公司把后备管理者送到美术院校学习

冒险和预测

前言 大家好我是jiantaoyab,这是我所总结作为学习的笔记第十篇,在这里分享给大家,还有一些书籍《深入理解计算机系统》,《计算机体系结构:量化研究方法》,这篇文章讲冒险和预测 流水线设计需要解决的三大冒险,分别是结构冒险(Structural Hazard)、数据冒险(Data Hazard)以及控制冒险(Control Hazard)。 结构冒险 本质上是一个硬件层面的资源竞争

陈世元:被保送中科院,两次被裁,人生不能老是按部就班的走下去,需要冒险,尝试一下新的东西

《程客有话说》是我们最新推出的一个访谈栏目,邀请了一些国内外有趣的程序员来分享他们的经验、观点与成长故事,我们尝试建立一个程序员交流与学习的平台,也欢迎大家推荐朋友或自己来参加我们的节目,一起加油。 本期我们邀请的程序员是陈世元,学习成绩优秀,被保送中科院,从力学转行程序员,从业时间近10年。 1、请自我介绍一下。 我叫陈世元,一名90后,15年毕业,工作到现在,将近十年了,一直在做

系统最高速度计算(最快时钟频率)和 流水线冒险种类及解决方案

同步电路的速度是指同步系统时钟的速度,同步时钟愈快,电路处理数据的时间间隔越短,电路在单位时间内处理的数据量就愈大。假设Tco是触发器的输入数据被时钟打入到触发器到数据到达触发器输出端的延时时间(Tco=Tsetpup+Thold);Tdelay是组合逻辑的延时;Tsetup是D触发器的建立时间。假设数据已被时钟打入D触发器,那么数据到达第一个触发器的Q输出端需要的延时时间是Tco,经过组合逻辑的

雅虎的商业巨轮倾覆,要怪就怪它不再冒险的创始人吧

雅虎的商业巨轮倾覆,要怪就怪它不再冒险的创始人吧(转)撰文:Brad Stone踏入新世纪,雅虎所犯下的最大的错误则在于一系列的决策失误没有了创始人为公司掌舵,雅虎不仅在策略上,同时还在文化上迷失了方向美国雅虎公司,这个名字后面永远跟着一个激情洋溢的感叹号的互联网门户网站,在谱写了一系列漫长、令人伤感的故事之后,终于迎来了自己最终的归宿。经过长达5个月的竞购过程,Verizon Communic

http://community.csdn.net/Expert/topic/5312/5312945.xml?temp=.5996363递归

public class RecTest {  static int[] values = new int[3];  static void printArray(int i) {    if (i == 0) return;//当i=0的时候返回,因为此时数组的下标为-1,所以没有输出    else printArray(i - 1);    System.out.println("["

莉莉与神奇花朵的冒险

现在,我将根据这些步骤编写一个对话形式的童话故事。 在很久很久以前的一个小村庄里,有一个勤劳善良的小女孩叫莉莉。她住在一间小茅屋里,和她的奶奶一起生活。奶奶年纪大了,行动不便,所以莉莉每天都要照顾她。 一天,奶奶对莉莉说:“莉莉,我听说森林深处有一朵神奇的花,它能够实现一个人的愿望。我想,如果你能找到那朵花,我们的生活会变得更好。” 莉莉决定踏上寻找神奇花朵的旅程。她带上了奶奶为她准备的食物和

Linux的奇妙冒险———vim的用法和本地配置

vim的用法和本地配置 一.vim的组成和功能。1.什么是vim2.vim的多种模式 二.文本编辑(普通模式)的快捷使用1.快速复制,粘贴,剪切。2.撤销,返回上一步操作3.光标的控制4.文本快捷变换5.批量化操作和注释 三.底行模式四.vim的配置 一.vim的组成和功能。 1.什么是vim Vim是一款文本编辑器,是Vi的改进版本。它是一个开源软件,可在各种操作系统上运行。