【Vijos1659】河蟹王国
Description
河蟹王国有一位河蟹国王,他的名字叫羊驼。河蟹王国富饶安定,人们和谐相处。有一天,羊驼国王心血来潮,想在一部分人中挑出最和谐的人。于是,羊驼国王将他的子民排成了一列(==!!b汗~好长呀)。每个人都有一个初始的和谐值。羊驼国王每次会选择一个区间[L,R],这个区间中和谐值最大的人就是国王选出的人。而且,在某一时间,区间[L',R']里的人会变得熟悉,因此他们每个人的和谐值都会上升一个相同的值C。羊驼国王想知道,对于每一次选择,他选出的最大和谐值是多少。
Input
第一行是一个数N(1<=N<=100000),表示人数。
接下来的N行,每行一个数,表示排成的序列第i个人和谐值的初始值。
接下来是一个数M(1<=M<=100000),表示羊驼国王或他的子民有所活动(羊驼国王选择一个区间算一次,某区间里的人增长和谐值算一次)的总次数。
接下来的M行,每行第一个是一个数K,K是1或2,若K=1,接下来有三个数L,R,C,表示区间[L,R]的所有人增加C的和谐值;若K=2,接下来有两个数L,R,表示国王选择了区间[L,R]。
Output
每次对于国王选择区间,输出选择区间里的最大和谐值。
Sample Input
5 1 2 3 4 5 3 2 1 4 1 1 3 3 2 3 5
Sample Output
4 6
HINT
每个测试点1s。
保证所有的数以及结果都在longint范围内。
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int maxn=100010; int cnt=0; int a[maxn]; struct treetype{int lptr,rptr;int Left,Right;int mx,bj; //区间最大值 }t[2*maxn];void buildtree(int ll,int rr){int cur=++cnt;t[cur].Left=ll; t[cur].Right=rr;if (ll!=rr-1){t[cur].lptr=cnt+1; buildtree(ll,(ll+rr)/2);t[cur].rptr=cnt+1; buildtree((ll+rr)/2,rr);t[cur].mx=max(t[t[cur].lptr].mx,t[t[cur].rptr].mx);t[cur].bj=0;}else{t[cur].mx=a[ll]; t[cur].bj=0;} } void update(int k){if (t[k].Right-1 != t[k].Left){t[t[k].lptr].mx+=t[k].bj; t[t[k].rptr].mx+=t[k].bj;t[t[k].lptr].bj+=t[k].bj; t[t[k].rptr].bj+=t[k].bj;}t[k].bj=0; } void change(int k,int ll,int rr,int delta){if (t[k].bj) update(k);if (ll<=t[k].Left && rr>=t[k].Right){t[k].mx+=delta;t[k].bj+=delta;}else{if (ll<(t[k].Left+t[k].Right)/2) change(t[k].lptr,ll,rr,delta);if (rr>(t[k].Left+t[k].Right)/2) change(t[k].rptr,ll,rr,delta);t[k].mx=max(t[t[k].lptr].mx,t[t[k].rptr].mx); //↑更新 } } int query(int k,int ll,int rr){if (t[k].bj) update(k);if(ll<=t[k].Left && rr>=t[k].Right) return t[k].mx;int ans=-10000000; //有负数 if (ll<(t[k].Left+t[k].Right)/2) ans=query(t[k].lptr,ll,rr);if (rr>(t[k].Left+t[k].Right)/2) ans=max(ans,query(t[k].rptr,ll,rr));return ans; } int main(){int n,m,type,lf,rt,del;scanf("%d",&n);for (int i=1;i<=n;i++) scanf("%d",&a[i]);scanf("%d",&m);buildtree(1,n+1);int i=1;for (i=1;i<=m;i++){scanf("%d",&type);if (type==1){scanf("%d%d%d",&lf,&rt,&del);change(1,lf,rt+1,del);}else{scanf("%d%d",&lf,&rt);printf("%d\n",query(1,lf,rt+1));}}return 0; }
转载于:https://www.cnblogs.com/liumengyue/p/5128391.html
【Vijos1659】河蟹王国相关推荐
- vijos p1659——河蟹王国(线段树)(复习)
描述 河蟹王国有一位河蟹国王,他的名字叫羊驼.河蟹王国富饶安定,人们和谐相处.有一天,羊驼国王心血来潮,想在一部分人中挑出最和谐的人.于是,羊驼国王将他的子民排成了一列(==!!b汗~好长呀).每个人 ...
- 【vijos】P1659 河蟹王国
[算法]线段树 [题解]区间加上同一个数+区间查询最大值.注意和谐值可以是负数,初始化ans为负无穷大. #include<cstdio> #include<algorithm> ...
- java 魔法王国,游历魔法王国
60 只要找到最长的一条路径就好,只要保证最长路径只走一次,多余的步数再去访问其他节点,就能计算能够访问的最多节点数. (1) 如果允许走的步数L小于等于最长路径,那么就直接只在最长路径上走,这样可以 ...
- 虚拟摄像头 安卓版_林俊杰 ft. M.E.,联同视效大厂数字王国加码虚拟偶像
睽违三年,林俊杰携新专<幸存者·如你>强势回归,一场「新歌首唱LIVE」在10月30日晚间如约而至.对虚拟科技情有独钟的林俊杰,从未错过每一次变身资深玩家的机会.此番线上视听盛宴的中途,一 ...
- 从创作工具到虚拟超现实主义,聊一聊VR的艺术王国
今天我们就从创作与分享的角度聊一下VR的艺术王国. 阿罗想要在有月亮的晚上去外面走一走,可是天上没有月亮.于是,阿罗花了月亮和路.很快阿罗对走路失去兴趣.于是他画了一条小路和苹果树.苹果树下,阿罗画了 ...
- 【bzoj5020】[THUWC 2017]在美妙的数学王国中畅游 泰勒展开+LCT
题目描述 学渣小R被大学的数学课程虐得生活不能自理,微积分的成绩曾是他在教室里上的课的最低分.然而他的某位陈姓室友却能轻松地在数学考试中得到满分.为了提升自己的数学课成绩,有一天晚上(在他睡觉的时候) ...
- 洛谷 P4475 巧克力王国 解题报告
P4475 巧克力王国 题目描述 巧克力王国里的巧克力都是由牛奶和可可做成的.但是并不是每一块巧克力都受王国人民的欢迎,因为大家都不喜欢过于甜的巧克力. 对于每一块巧克力,我们设 \(x\) 和 \( ...
- [THUWC2017]在美妙的数学王国中畅游
[THUWC2017]在美妙的数学王国中畅游 e和sin信息不能直接合并 泰勒展开,大于21次太小,认为是0,保留前21次多项式即可 然后就把e,sin ,kx+b都变成多项式了,pushup合并 上 ...
- BZOJ5020: [THUWC 2017]在美妙的数学王国中畅游
BZOJ5020: [THUWC 2017]在美妙的数学王国中畅游 其实题面好像有点不全,建议去洛谷: P4546 [THUWC2017]在美妙的数学王国中畅游 这里还是$BZOJ$的题面. Desc ...
- 计算机学院大学生程序设计竞赛(2015’11)1007 油菜花王国
1007 油菜花王国 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Probl ...
最新文章
- ubuntu nohup php,Ubuntu安装PhpStorm并设置快速启动phpstorm
- python 内存中的文件操作 StringIO cStringIO 简介
- MySQL浮点数和定点数类型
- cacti 整合nagios,以及总是off处理办法!
- [Qt教程] 第25篇 数据库(五)SQL表格模型QSqlTableModel
- 给定数字的全部组合实现方式
- libvirt/qemu特性之快照
- 一年月份大小月口诀_家乡山溪长的菖蒲种植有讲究,记住“口诀”事半功倍
- 转反射的第一部分:发现和执行
- 关于Android的ImageView置顶
- 反向题在测试问卷信效度_问卷一定要做信度效度检验吗?如果含有多选题怎样做信度分析,请各位高手帮帮忙。...
- 率土之滨服务器维修,率土之滨征服赛季合服与转服功能详解
- 读《把时间当作朋友:运用心智获得解放》
- AI - Intelligent Agents
- 保时捷上海车展阵容公布:新款Cayenne全球首秀
- 如何给SCI收录的文章分区?
- 五种常见的聚类算法总结
- 三维视觉 | 03 MATLAB 单、双目相机标定
- 阿里云+VMware会擦出怎样的火花?
- ChatGPT自动写了个AI办公office word插件,低配copilot,程序员看了焦虑。
热门文章
- Python之协程、异步IO、redis缓存、rabbitMQ队列
- layui中弹出层的两种表达方式
- servlet以及HTML中路径问题
- $科大讯飞开放平台——语音听写接口的使用
- UVa 621 - Secret Research
- SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”
- 一步步完成FastDFS + Spring MVC上传下载整合示例
- Java 基础【01】 This 用法
- php学习第一讲----php是什么?
- 设置OWA重定向URL