2019杭电多校6 hdu6638 Snowy Smile(二维最大矩阵和 线段树)
http://acm.hdu.edu.cn/showproblem.php?pid=6638
题意:给你一些点的权值,让找一个矩形圈住一部分点,问圈住点的最大权值和
分析:由于是稀疏图,明显要先把x,y坐标离散化,暴力是n^3?(枚举边界n^2,求和是n)显然过不了,那可以枚举y的边界,然后对于x就是最大子段和的问题了,用线段树维护,n^2logn可以过。
#include<bits/stdc++.h>
using namespace std;
const int maxn = 4e3+;
const int inf = 0x3f3f3f;
typedef pair<int,int> P;
typedef long long ll;
int cas,n;
struct point{
int x,y,val;
bool operator<(const point &a) const{
return y<a.y;
}
}a[maxn];
vector<int> p[maxn];
int bx[maxn],by[maxn]; struct node{
ll sum,lmax,rmax,lrmax;
}tree[maxn<<]; inline void pushup(int rt){
tree[rt].sum = tree[rt<<].sum+tree[rt<<|].sum;
tree[rt].lmax = max(tree[rt<<].lmax,tree[rt<<].sum+tree[rt<<|].lmax);
tree[rt].rmax = max(tree[rt<<|].rmax,tree[rt<<].rmax+tree[rt<<|].sum);
tree[rt].lrmax = max(max(tree[rt<<].lrmax,tree[rt<<|].lrmax),tree[rt<<].rmax+tree[rt<<|].lmax);
} inline void update(int L,int l,int r,int rt,int c){
if(l==r){
tree[rt].sum += 1ll*c;
tree[rt].lrmax = tree[rt].lmax = tree[rt].rmax = tree[rt].sum;
return;
}
int mid = l+r>>;
if(L<=mid) update(L,l,mid,rt<<,c);
else update(L,mid+,r,rt<<|,c);
pushup(rt);
} int main(){
cin>>cas;
while(cas--){
cin>>n;
for(int i=;i<=n;i++){
cin>>a[i].x>>a[i].y>>a[i].val;
bx[i] = a[i].x,by[i] = a[i].y;
}
sort(bx+,bx++n);
int xlen = unique(bx+,bx++n)-bx-;
sort(by+,by++n);
int ylen = unique(by+,by++n)-by-;
for(int i=;i<=n;i++){
a[i].x = lower_bound(bx+,bx+xlen+,a[i].x)-bx;
a[i].y = lower_bound(by+,by+ylen+,a[i].y)-by;
}
sort(a+,a++n);
ll ans = ;
for(int i=;i<=ylen;i++){
memset(tree,,(xlen*+)*sizeof(node));
int pos = ;
while(a[pos].y<i&&pos<=n) pos++;
for(int j=i;j<=ylen;j++){
while(a[pos].y<=j&&pos<=n){
update(a[pos].x,,xlen,,a[pos].val);
pos++;
}
ans = max(ans,tree[].lrmax);
} }
cout<<ans<<endl;
}
return ;
}
2019杭电多校6 hdu6638 Snowy Smile(二维最大矩阵和 线段树)的更多相关文章
- 2019杭电多校第四场hdu6621 K-th Closest Distance(二分答案+主席树)
K-th Closest Distance 题目传送门 解题思路 二分答案+主席树 先建主席树,然后二分答案mid,在l和r的区间内查询[p-mid, p+mid]的范围内的数的个数,如果大于k则说明 ...
- 2019杭电多校第六场hdu6638 Snowy Smile(线段树+枚举)
Snowy Smile 题目传送门 解题思路 先把y离散化,然后把点按照x的大小进行排序,我们枚举每一种x作为上边界,然后再枚举其对应的每一种下边界.按照这种顺序插入点,这是一个压维的操作,即在线段树 ...
- [2019杭电多校第六场][hdu6638]Snowy Smile(维护区间最大子段和)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6638 题意为在一个平面上任意选择一个长方形,使得长方形内点权和最大. 因为长方形可以任意选择,所以上下 ...
- 2019杭电多校&CCPC网络赛&大一总结
多校结束了, 网络赛结束了.发现自己还是太菜了,多校基本就是爆零和签到徘徊,第一次打这种高强度的比赛, 全英文,知识点又很广,充分暴露了自己菜的事实,发现数学还是很重要的.还是要多刷题,少玩游戏. 网 ...
- 2019杭电多校第一场hdu6581 Vacation
Vacation 题目传送门 update(O(n)) 看了那个O(n)的方法,感觉自己想的那个O(nlogn)的好傻,awsl. 0车最终通过停车线的时候,状态一定是某个车堵住后面的所有车(这个车也 ...
- 2019杭电多校第二场hdu6601 Keen On Everything But Triangle
Keen On Everything But Triangle 题目传送门 解题思路 利用主席树求区间第k小,先求区间内最大的值,再求第二大,第三大--直到找到连续的三个数可以构成一个三角形.因为对于 ...
- 2019杭电多校第二场hdu6602 Longest Subarray(线段树)
Longest Subarray 题目传送门 解题思路 本题求一个最大的子区间,满足区间内的数字要么出现次数大于等于k次,要么没出现过.给定区间内的数字范围是1~c. 如果r为右边界,对于一种数字x, ...
- Rikka with Game[技巧]----2019 杭电多校第九场:1005
Rikka with Game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Othe ...
- 2019杭电多校 hdu6662 Acesrc and Travel (树形dp
http://acm.hdu.edu.cn/showproblem.php?pid=6662 题意:有两个人在树上博弈,每个点节点有两个分数a[i]和b[i],先手先选择一个点,后手在先手选的点的相邻 ...
随机推荐
- vue教程二 vue组件(3)
给属性传递数据 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> < ...
- Linux升级GCC
升级原因 测试需要使用DOClever,下载了最新的node8.11,运行node 时候报错 [root@app_test bin]# node www module.js:681 return pr ...
- 【Android】Genymotion 模拟器 Unable to create virtual device
安装 Genymotion 模拟器的时候报了这个错误,如下: 后来找到了解决方法,见下图: 在 Setting -> Network, 勾选 Use HTTP Proxy, HTTP Proxy ...
- C# 10分钟完成百度图片提取文字(文字识别)——入门篇
现在图片文字识别已经很成熟了,比如qq长按图片,点击图片识别就可以识别图片的文字,将不认识的.文字数量大的.或者不能赋值的值进行二次可复制功能. 我们现在就基于百度Ai开放平台进行个人文字识别,dem ...
- python 实现两个文本文件内容去重
实现两个文本内容去重,输出两个文本不重复的结果 两个测试文本内容如下 1.txt中内容为 1 2 3 4 5 6 7 8 2.txt中内容为 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
- Altium Designer16绘制51单片机的一些经验总结
制作这块51单片机的还是蛮艰辛的,应该是我水平太差,现在这块51板已经稳定了,也把这块板子制作过程中的一些问题及经验总结记录下来.这块板子制作出了很大问题很大原因是因为我对Altium Designe ...
- 第四章 文件的基本管理和XFS文件系统备份恢复 随堂笔记
第四章 文件的基本管理和XFS文件系统备份恢复 本节所讲内容: 4.1 Linux系统目录结构和相对/绝对路径. 4.2 创建/复制/删除文件,rm -rf / 意外事故 4.3 查看文件内容的命令 ...
- iOS的录屏功能
iOS的录屏功能其实没什么好说的,因为网上的教程很多,但是网上的Demo无一例外几乎都有一个bug,那就是iPad上会出现闪退,这也体现了国内的教程文档的一个特点,就是抄袭,教程几乎千篇一律,bug也 ...
- IDEA运行报错: Maven编译错误:不再支持源选项 5。请使用 6 或更高版本
这里 记录下 这个问题的解决方案: 1:修改maven settings.xml 中的数据 这里的版本要对应现在使用的jdk版本 2:检查idea 配置 图中2块区域要一致 检查这块地方对应了自己的j ...
- XML简单了解一下
XML是一种纯文本文档.HTML,标记是已经被W3C规定好的,自己创建一个标签是不被允许的. XML现在的用途是用来存储数据.config文件就是个XML文档.XML是可以自定义的. 每一个XML文档 ...