北大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 ...
随机推荐
- Linux---文件目录管理
1. Linux文件目录架构 Linux的目录结构与win的目录有很大不同,首先,没有盘符的概念:然后Linux使用斜杠/标识目录,Linux首先建立一个根目录,然后将其他文件系统挂载到这个目录下. ...
- page对象的使用及常见方法
page对象的使用及常见方法 制作人:全心全意 page对象代表JSP本身,只有在JSP页面内才是合法的.page对象本质上是包含当前Servlet接口引用的变量,可以看作是this关键字的别名. p ...
- python3爬虫-通过requests获取安居客房屋信息
import requests from fake_useragent import UserAgent from lxml import etree from http import cookiej ...
- Python-函数和代码复用
函数的定义与使用 >函数的理解与定义 函数是一段代码的表示 -函数是一段具有特定功能的.可重用的语句组 -函数是一种功能的抽象,一般函数表达特定功能 -两个作用:降低编程难度 和 代码复用 de ...
- 后台工具screen
之前在putty之类的远程命令行操作服务器的时候,遇到关闭软件,对应的操作就会关闭.很多时候,就是开着电脑,然后挂在那里,虽然不用电脑跑,但是也耗电...主要是putty这些软件有时候会伴随黑屏崩掉. ...
- 多校1007 Naive Operations
>>点击进入原题测试<< 思路:好像是第一次这么印象深刻的写线段树,说实话,这个题确实很有意思,值得学习. 看了大神讲解视频,但是自己写的还是超时了. 参考来自 https:/ ...
- FZU 1492 地震预测(模拟链表的应用)(Java实现)
FZU 1492 地震预测(模拟链表的应用)(Java实现) 怀特先生是一名研究地震的科学家,最近他发现如果知道某一段时间内的地壳震动能量采样的最小波动值之和,可以有效地预测大地震的发生. 假设已知一 ...
- hdu 2255KM算法模板
#include<stdio.h> #include<string.h> #define N 400 #define inf 0x7fffffff int Max(int a ...
- PLSQL 下载地址 Spring jar包
PLSQL https://www.allroundautomations.com/ instantclient http://www.oracle.com/technetwork/topic ...
- 用XAMPP+Wordpress搭建个人博客
http://biancheng.dnbcw.info/php/456308.html http://jingyan.baidu.com/article/f71d60376ba9571ab641d11 ...