北大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 ...
随机推荐
- css--小白入门篇4
一.前文回顾 盒模型box model 什么是盒子?所有的标签都是盒子.无论是div.span.a都是盒子.图片.表单元素一律看做文本. 盒模型有哪些组成:width.height.padding.b ...
- linux网络编程——域名转换 gethostbyname与gethostbyaddr
域名转换 #include <netdb.h> struct hostent *gethostbyname(const char *name); 参数: name: 执行主机名的指针 返回 ...
- Linux---文件目录管理
1. Linux文件目录架构 Linux的目录结构与win的目录有很大不同,首先,没有盘符的概念:然后Linux使用斜杠/标识目录,Linux首先建立一个根目录,然后将其他文件系统挂载到这个目录下. ...
- <MyBatis>入门五 查询的返回值处理
select : 返回对象: <select id = " " resultType= "对象的全类名" /> List: <sele ...
- linux sar-系统运行状态统计工具
推荐:更多linux 性能监测与优化 关注:linux命令大全 sar命令是Linux下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备.sar工具将对系统当前的状态进行取样,然后 ...
- jet flow in a combustion chamber
Table of Contents 1. contacts 2. Paper digest 2.1. LES vs. RANS 2.2. Dynamics of Transient Fuel Inje ...
- Android BottomSheet:以选取图片为例(2)
Android BottomSheet:以选取图片为例(2) 附录文章5简单介绍了常见的分享面板在BottomSheet中的具体应用.本文再以常见的选取图片为例写一个例子. 布局文件: < ...
- [poj1678]I Love this Game!_博弈论
I Love this Game! 题目大意:题目链接 注释:略. 想法: 开始的时候以为没法dp,结果...:a>0啊! 所以可以直接dp了啊! 状态:dp[i]表示先手选了a[i]的状态. ...
- WPS for Linux字体配置(Ubuntu 16.04)
错误提示: 解决方法: 从http://bbs.wps.cn/thread-22355435-1-1.html下载字体库,离线版本:(链接: https://pan.baidu.com/s/1i5dz ...
- 使用 IAsyncResult 调用异步方法
.NET Framework 和第三方类库中的类型可以提供允许应用程序在主应用程序线程之外的线程中执行异步操作的同时继续执行的方法.下面几部分介绍了在调用使用 IAsyncResult 设计模式的异步 ...