HDU - 6638
题目链接:HDU - 6638
#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
//#define int long long
using namespace std;
const int N=2e3+10;
typedef long long LL;
int n,m; LL res;
struct node{int x,y,w;}q[N];
struct seg{LL ls,rs,s,mx;}t[N<<2],c;
vector<int> v;
#define mid (l+r>>1)
inline seg merge(seg a,seg b){c.s=a.s+b.s; c.mx=max(max(a.mx,b.mx),a.rs+b.ls);c.ls=max(a.ls,a.s+b.ls),c.rs=max(b.rs,b.s+a.rs);return c;
}
void build(int p,int l,int r){if(l==r){t[p].ls=t[p].rs=t[p].s=t[p].mx=0; return ;}build(p<<1,l,mid),build(p<<1|1,mid+1,r);t[p]=merge(t[p<<1],t[p<<1|1]);
}
void change(int p,int l,int r,int x,int v){if(l==r){t[p].s+=v,t[p].mx+=v,t[p].ls+=v,t[p].rs+=v; return ;}if(x<=mid) change(p<<1,l,mid,x,v);else change(p<<1|1,mid+1,r,x,v);t[p]=merge(t[p<<1],t[p<<1|1]);
}
inline void solve(){cin>>n; v.clear(); res=0;for(int i=1;i<=n;i++) scanf("%d %d %d",&q[i].x,&q[i].y,&q[i].w),v.push_back(q[i].y);sort(v.begin(),v.end()); v.erase(unique(v.begin(),v.end()),v.end()); m=v.size();for(int i=1;i<=n;i++) q[i].y=lower_bound(v.begin(),v.end(),q[i].y)-v.begin()+1;sort(q+1,q+1+n,[](node a,node b){return a.x<b.x;});for(int i=1;i<=n;i++){build(1,1,m);for(int j=i;j<=n;j++){change(1,1,m,q[j].y,q[j].w);while(q[j+1].x==q[j].x) j++,change(1,1,m,q[j].y,q[j].w);res=max(res,t[1].mx);}while(q[i].x==q[i+1].x) i++;}printf("%lld\n",res);
}
signed main(){int T; cin>>T; while(T--) solve();return 0;
}
HDU - 6638相关推荐
- HDU 6638二维扫描线+二维最大子段和+离线
Snowy Smile HDU - 6638 题解看这位大佬,讲的很详细了. 传送门 反思: 本题做的时候,已经想到二维子段和了,但不知怎么维护. 看了题解,原来要用线段树,之后暴力算答案. 先只看纵 ...
- HDU 6638 [2019 Multi-University Training Contest 6]
Snowy Smile Problem Description There are n pirate chests buried in Byteland, labeled by 1,2,-,n. Th ...
- 2019杭电暑假多校训练 第六场 Snowy Smile HDU - 6638
很多题解都是简单带过,所以打算自己写一篇,顺便也加深自己理解 前置知识:线段树.线段树维护最大字段和.二维坐标离散化 题解: 1.很容易想到我们需要枚举所有子矩阵来得到一个最大子矩阵,所以我们的任务是 ...
- 杭电多校(六)2019.08.07--暑假集训
[HDU 6634] UNSOLVED [HDU 6634] UNSOLVED [HDU 6636] UNSOLVED [HDU 6637] UNSOLVED [HDU 6638] UNSOLVED ...
- HDU 4389 - X mod f(x)
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=4389 2012多校,第9场,1010 . 问题是,询问区间内 存在多少个 哈沙德数(Harshad ...
- hdu 4389 囧,打表
http://acm.hdu.edu.cn/showproblem.php?pid=4389 题意 :一个数能被他各个位数之和整除则符合要求,给L,R,问区间里有多少个数符合要求. 囧,居然打表就能过 ...
- HDU——1106排序(istringstream的使用、STLvector练习)
排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...
- hdu 5438 Ponds 拓扑排序
Ponds Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_showproblem ...
- HDU 1248 寒冰王座(全然背包:入门题)
HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...
- hdu 1312 Red and Black 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 第二条深搜,题目并不难,但是做了我好久好久,由于一个细节,让我赌上了一个晚上的时间. 题目大意: ...
最新文章
- Mybatis的工作原理,你了解过吗?
- 过拟合曲线与早期停止法
- x=x|(x+1);和x=x(x-1)?
- adb提取安装的apk
- ACL 2020 | 知识库问答的多跳复杂问题查询图生成
- IOS OC项目的单例模式
- 工作312:uni-弹出框显示数据
- ios 计算两个时间相差秒数_Ios中时间差的计算,NSData与NSCalendar(日历)对象
- int long long 的范围
- AutoLISP恢复系统变量到默认值
- 胶囊碰撞体(CapsuleCollider)
- MySQL数据库检查修复详解
- CF1041F Ray in the tube
- 二级c语言考试怎么调试程序,计算机二级C语言考试具体内容及分值
- oracle写存储过程ssm中调用存储过程
- “撤县设市”の利与弊
- 2022年湖南省自考考试幼儿园教育活动设计与组织练习题及答案
- 【前端学习】前端学习第二天:图片标签、音频标签及视频标签的用法说明
- go和python优缺点_我为什么放弃了 Python ,选择了 Go?
- navicat怎么备份数据和同步两个数据库