http://acm.hdu.edu.cn/showproblem.php?pid=2795
#include<stdio.h>
#define N 200000
/*
叶节点为[i,i]3281MS
叶节点为[i,i+1)3312MS
这题一看,完全不知怎么下手,只想如果可以暴力就好了。
经提示,这也可以SegmentTree,结点中wmax保存该段的最大值,
更新的同时其实也查询了,有点二分的思想
*/
int max(int a,int b)
{
return a>b?a:b;
}
struct node
{
int left,right,wmax;
int mid()
{
return (left+right)/2;
}
}st[N<<2];
void build(int left,int right ,int w,int id)
{
st[id].left=left;
st[id].right=right;
st[id].wmax=w;
if(left+1>=right)
return;
int mid=s