[POI2005]AUT-The Bus 树状数组维护最大前缀和
2024-08-31 08:59:41
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=100000+3;
int x[N], y[N], Y[N], A[N], nums[N];
int C[N];
int cmp(int i,int j){
if(x[i]==x[j])return y[i]<y[j];
return x[i]<x[j];
}
int lowbit(int t){return t&(-t);}
void update(int t,int delta)
{
while(t<N) C[t]=max(C[t],delta), t+=lowbit(t);
}
int query(int t){
int tmp=-1;
while(t>0)tmp=max(tmp,C[t]), t-=lowbit(t);
return tmp;
}
int main()
{
//freopen("in.txt","r",stdin);
int n,m,k,ans=0;
scanf("%d%d%d",&n,&m,&k);
for(int i=1;i<=k;++i)scanf("%d%d%d",&y[i],&x[i],&nums[i]), Y[i]=y[i];
for(int i=1;i<=k;++i)A[i]=i;
sort(A+1,A+1+k,cmp);
sort(Y+1,Y+1+k);
for(int i=1;i<=k;++i)
{
int cur=A[i];
y[cur]=lower_bound(Y+1,Y+1+k, y[cur])-Y;
int h=query(y[cur])+nums[cur];
ans=max(ans,h);
update(y[cur], h);
}
printf("%d",ans);
return 0;
}
最新文章
- 【转】Caffe初试(七)其它常用层及参数
- Mac 不能输入波浪线?
- jQuery获取多种input值的方法
- 学习制作第一个 openfire 插件
- Java for循环的几种用法
- 代码滑动panorama-即程序中设置SelectedIndex
- hql语句理解2
- zoj 2105 Lifting the Stone
- TCP协议承载的DNS报文,DNS报文首部前多出两个字节的DNS报文长度字段,是何意义?
- Eclipse Python配置
- 手把手教你图片转ASCII码图
- uva 10655 - Contemplation! Algebra(矩阵高速幂)
- Makefile 管理工具 — Automake and Autoconf
- Centos操作系统在虚拟机VMware上的安装
- windows上定时执行php文件
- C++STL之String
- C 语言内存区域分配(进程的各个段)详解
- 【贪心+背包】BZOJ1334 [Baltic2008]Elect
- 老师博客copy -高阶函数2
- HTML - CSS 基础篇
热门文章
- django异常--数据库同步
- CentOS 6.3(x86_32)下安装Oracle 10g R2
- 20150805-20150807 tradeDate-----python
- EntityFramework:状态变化与方法的关系[转载]
- 楼控-西门子-insight使用-软件重新授权
- Tomcat扩展——监控
- 实战c++中的string系列--CDuiString和string的转换(duilib中的cduistring)
- SSH整合报错:找不到元素 &#39;beans&#39; 的声明
- canvas的自动画图
- 一个 passive 引发的bug