北大zhw大神bzoj1756代码
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <algorithm>
using namespace std;
int tree[][],a[],n,m,A,B,C,i,ans,t,x;
void Update(int x)
{
tree[x][]=tree[x*][]+tree[x*+][];
tree[x][]=max(tree[x*][],tree[x*+][]);
tree[x][]=max(tree[x*][],tree[x*][]+tree[x*+][]);
tree[x][]=max(tree[x*+][],tree[x*+][]+tree[x*][]);
tree[x][]=max(max(tree[x*][],tree[x*+][]),tree[x*][]+tree[x*+][]);
}
int WORK(int root,int l,int r)
{
if (tree[root][]==l && tree[root][]==r) return tree[root][];
int mid=(tree[root][]+tree[root][])/,p=-,q=-;
if (l<=mid) p=WORK(root*,l,min(mid,r));
if (r>mid) q=WORK(root*+,max(l,mid+),r);
return max(p,q);
}
void work(int root,int l,int r)
{
if (tree[root][]==l && tree[root][]==r)
{
ans=max(ans,tree[root][]+t);
ans=max(ans,tree[root][]);
t=max(t+tree[root][],tree[root][]);
t=max(t,);
return;
}
int mid=(tree[root][]+tree[root][])/;
if (l<=mid) work(root*,l,min(mid,r));
if (r>mid) work(root*+,max(mid+,l),r);
}
int main()
{
scanf("%d%d",&n,&m);
for (i=; i<=n; i++) scanf("%d",&a[i]);
for (i=; i<=; i++)
{
tree[i][]=tree[i][]=i;
tree[i][]=tree[i][]=a[i-];
tree[i][]=tree[i][]=tree[i][]=max(a[i-],);
}
for (i=; i>=; i--)
{
tree[i][]=tree[i*][];
tree[i][]=tree[i*+][];
Update(i);
}
for (i=; i<=m; i++)
{
scanf("%d%d%d",&A,&B,&C);
if (A==)
{
x=+B;
tree[x][]=tree[x][]=C;
tree[x][]=tree[x][]=tree[x][]=max(C,);
while (x!=)
{
x/=;
Update(x);
}
}
else
{
if (B>C) swap(B,C);
t=;
ans=WORK(,B+,C+);
if (ans<) printf("%d\n",ans); else
{
work(,B+,C+);
printf("%d\n",ans);
}
}
}
return ;
}
北大zhw大神bzoj1756代码的更多相关文章
- 为何你跟着滴滴D8级前端大神撸代码,技术却依旧原地踏步?
引子 听说最近有很多小伙伴,热衷于在慕课网上学习各种前端实战教程,并以完成项目为奋斗目标.比如本文接下来要提到的<Vue2.0高级实战之开发移动端音乐App>,这门课程的传授者是来自滴滴D ...
- kaggle新手如何在平台学习大神的代码
原创:数据臭皮匠 [导读]Kaggle ,作为听说它很牛X但从未接触过的同学,可能仅仅了解这是一个参加数据挖掘比赛的网站,殊不知Kaggle也会有赛题相关的数据集, 比如我们熟知的房价预测.泰坦尼克 ...
- zhw大神线段树姿势
; i<; i++) tree[i][]=tree[i][]=i; ; i>=; i--) tree[i][]=tree[i+i][], tree[i][]=tree[i+i+][]; v ...
- PAT1080 MOOC期终成绩 (25分) ——同样参考了柳婼大神的代码及思路,在自己的代码上做了修改,还是很复杂
1080 MOOC期终成绩 (25分) 对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分 ...
- 【leetcode】Wildcard Matching(hard) ★ 大神太牛了
Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any single character. ...
- 老猪带你玩转自定义控件三——sai大神带我实现ios 8 时间滚轮控件
ios 8 的时间滚轮控件实现了扁平化,带来很好用户体验,android没有现成控件,小弟不才,数学与算法知识不过关,顾十分苦恼,幸好在github上找到sai大神实现代码,甚为欣喜,顾把学习这个控件 ...
- 解迷宫的C++的未完善编程代码........请大神们帮忙改善下.........
这...................................................................... 我也是醉了 看不太懂,大神们求解............ ...
- ruby大神与菜鸟的代码区别
之前Brand类 has_and_belongs_to_many :categories, index: true 现在在Category类 增加 has_and_belongs_to_many ...
- 【python】抄写大神的糗事百科代码
照着静觅大神的博客学习,原文在这:http://cuiqingcai.com/990.html 划重点: 1. str.strip() strip函数会把字符串的前后多余的空白字符去掉 2. resp ...
随机推荐
- python 爬取微信好友列表和个性签名,绘制个性签名云图
python爬取微信好友列表和个性签名,绘制个性签名云图 1. 简要介绍 本次实验主要用到下面几个库 : 1)itchat---用于微信接口,实现生成QR码,用于微信扫描登陆 2)re(正则化)--- ...
- 服务器做ssh免秘钥登陆
集群内服务器做非root用户免秘钥登陆:1.node1新建用户abc1,制作公钥.私钥(一路回车键即可)ssh-keygen –t rsa将自动在/home/abc1/.ssh/目录下创建公私钥文件如 ...
- linux tload-显示系统负载状况
推荐:更多linux 性能监测与优化 关注:linux命令大全 tload命令以图形化的方式输出当前系统的平均负载到指定的终端.假设不给予终端机编号,则会在执行tload指令的终端机显示负载情形. 语 ...
- JSP页面中的指令标识
JSP页面中的指令标识 制作人:全心全意 指令标识主要用于设定整个JSP页面范围内都有效的相关信息,它是被服务器解释并执行的,不会产生任何内容输出到网页中.也就是说,指令标识对于客户端浏览器是不可见的 ...
- ubutun 创建左面快捷方式
#http://blog.csdn.net/jizi7618937/article/details/51012552
- [bzoj2461][BeiJing2011][符环] (括号配对+记忆化搜索+高维dp)
Description 在可以炼制魔力强大的法杖的同时,Magic Land 上的人们渐渐意识到,魔力强大并不一定能给人们带来好处——反而,由此产生的破坏性的高魔力释放,给整个大陆蒙上了恐怖的阴影. ...
- Java高级应用之泛型与反射
/*************************************************************************************************** ...
- java操作数据库的工具库(from韩顺平)
需要引入jar包sqljdbc4.jar 其他关系型数据库只需要改动前面的连接过程,其他的一样 package com.cx.util; import java.io.FileInputStream; ...
- HDU——1576 A/B
A/B Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- Nginx源码分析:3张图看懂启动及进程工作原理
编者按:高可用架构分享及传播在架构领域具有典型意义的文章,本文由陈科在高可用架构群分享.转载请注明来自高可用架构公众号「ArchNotes」. 导读:很多工程师及架构师都希望了解及掌握高性能服务器 ...