北大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 ...
随机推荐
- dorado 7 使用总结
最近项目上需要,使用了dorado 7 ,总体感觉还可以,快速开发很方便,然而在方便的同时,难免有些太过繁琐,很多东西都封装了起来,会造成很多不便.因此快速开发的项目可以使用,其它的不推荐.现在打算将 ...
- RQNOJ #204 特种部队 sol
link 首先我们可以注意到一个非常无聊的性质.先一直向右边走,然后折返回来向左边走,本质上与先向右走,然后向左走,再向右走这样循环走完整个路程是一致的. 根据这个性质,我们可以将向左走与向右走两个东 ...
- [Algorithm] 3. Digit Counts
Description Count the number of k's between 0 and n. k can be 0 - 9. Example if n = 12, k = 1 in [0, ...
- Sublime 添加右键快捷(其他软件同样方法)
1.进入注册表 开始-->运行-->regedit(或直接win+r,输入regedit)-->回车 2.进入shell目录 [HKEY_CLASSES_ROOT\*\shell] ...
- 配置Struts2后运行jsp出现404的解决方法
更新:善用控制台查看错误信息 --------------------------------------------- 原因:Java Build Path没有导入正确的jar包或者导入了但没有把相 ...
- git 连接github.com 并配置密钥
传送门:http://www.jianshu.com/p/ff1034ed270e #备份ssh cd ~/.ssh $ ls $ mkdir key_backup //创建备份文件夹 $ cp id ...
- Apache 流框架 Flink,Spark Streaming,Storm对比分析(2)
此文已由作者岳猛授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 2.Spark Streaming架构及特性分析 2.1 基本架构 基于是spark core的spark s ...
- C++中const引用的是对象的时候只能调用该对象的f()const方法
const引用的作用: 1. 避免不必要的复制. 2. 限制不能修改对象. const 引用的是对象时只能访问该对象的const 函数 例: class A { public: void cons ...
- go语言slice的理解
Golang slice yongsean 作者 2017.02.17 00:07 打开App 创建切片,len.cap.append b := make([]int, 5) println(le ...
- Solid Edge如何快速装配,如何截取组装关系式
我们点击装配体的任意零件,下方将显示他的装配关系,由于一些零件的装配关系是固定的,比如螺栓,肯定要做一个面贴和,再做一个同轴,所以我们可以保存这些固有的步骤,不用再每次挨个点击这些装配关系. 点击 ...