题目

题意:平面上有 \(n\) 块草地,第 \(i\) 块草地坐标为 \((x_i,y_i)\) ,上面有 \(g_i\) 个单位的草。Bessie 可以吃到距离起始点不超过 \(k\)(这里是曼哈顿距离)的所有草。帮 Bessie 选定起始点使它能吃到最多的草。

看到曼哈顿距离,先转 \(45\) 度。这样 Bessie 吃的就是一个平行于坐标轴的正方形里的草。

我们发现,对于一块草地,使 Bessie 能吃到它的起始点也一定在一个平行于坐标轴的正方形里,那么被这种正方形覆盖最多的位置就是选定的起始点了。

对每块草地存下这样一个正方形,然后扫描线搞就好了。

#include<cstdio>
#include<cstring>
#include<algorithm>
inline int max(int a,int b){return a>b?a:b;}
#define M (L+R>>1)
struct segment_tree{
int mx[1<<19],lz[1<<19];
void Down(int k){
mx[k<<1]+=lz[k];lz[k<<1]+=lz[k];
mx[k<<1|1]+=lz[k];lz[k<<1|1]+=lz[k];
lz[k]=0;
}
void Add(int l,int r,int a,int L,int R,int k){
if(l<=L&&R<=r){mx[k]+=a;lz[k]+=a;return;}
Down(k);
if(l<=M)Add(l,r,a,L,M,k<<1);
if(r>M)Add(l,r,a,M+1,R,k<<1|1);
mx[k]=max(mx[k<<1],mx[k<<1|1]);
}
int Max(){return mx[1];}
}t;
const int N=1e5+3;
struct segment{int l,r,y,f;}a[N+N];
bool Cmp(const segment&a,const segment&b){return a.y==b.y?a.f>b.f:a.y<b.y;}
int n,m,ans,x[N],y[N],value[N],tmp[N+N],k;
inline void Rotate(int&x,int&y){int tmpx=x,tmpy=y;x=tmpx+tmpy,y=tmpy-tmpx;}
signed main(){
int l,r;
scanf("%d%d",&n,&m);m<<=1;
for(int i=1;i<=n;i++){
scanf("%d%d%d",value+i,x+i,y+i);
Rotate(x[i],y[i]);
tmp[i]=x[i],tmp[i+n]=x[i]+m;
}
std::sort(tmp+1,tmp+1+n+n);
k=0;
tmp[0]=-1;
for(int i=1;i<=n+n;i++)
if(tmp[i]!=tmp[i-1])tmp[++k]=tmp[i];
for(int i=1;i<=n;i++){
l=std::lower_bound(tmp+1,tmp+1+k,x[i])-tmp;
r=std::lower_bound(tmp+1,tmp+1+k,x[i]+m)-tmp;
a[i]=(segment){l,r,y[i],value[i]};
a[i+n]=(segment){l,r,y[i]+m,-value[i]};
}
std::sort(a+1,a+1+n+n,Cmp);
for(int i=1;i<=n+n;i++){
t.Add(a[i].l,a[i].r,a[i].f,1,n+n,1);
ans=max(ans,t.Max());
}
printf("%d",ans);
return 0;
}

USACO14MAR The Lazy Cow(Gold)的更多相关文章

  1. BZOJ3476 : [Usaco2014 Mar]The Lazy Cow

    旋转坐标系后转化为正方形,$x'=x+y$,$y'=x-y+1000001$,$k'=2k-1$ 两根扫描线从左往右扫 f[i]表示y坐标下边界为i时的价值和 每次加入/删除一个点等价于一段区间加减 ...

  2. USACO The Lazy Cow

    题目描述 这是一个炎热的夏天,奶牛贝茜感觉到相当的疲倦而且她也特别懒惰.她要在她的领域中找到一个合适的位置吃草,让她能吃到尽可能多的美味草并且尽量只在很短的距离.奶牛贝茜居住的领域是一个 N×N 的矩 ...

  3. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  4. 2021record

    2021-10-14 P2577 [ZJOI2004]午餐 2021-10-13 CF815C Karen and Supermarket(小小紫题,可笑可笑) P6748 『MdOI R3』Fall ...

  5. POJ 题目分类(转载)

    Log 2016-3-21 网上找的POJ分类,来源已经不清楚了.百度能百度到一大把.贴一份在博客上,鞭策自己刷题,不能偷懒!! 初期: 一.基本算法: (1)枚举. (poj1753,poj2965 ...

  6. HDU——PKU题目分类

    HDU 模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 ...

  7. (转)POJ题目分类

    初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推. ...

  8. poj分类

    初期: 一.基本算法:      (1)枚举. (poj1753,poj2965)      (2)贪心(poj1328,poj2109,poj2586)      (3)递归和分治法.      ( ...

  9. 转载 ACM训练计划

    leetcode代码 利用堆栈:http://oj.leetcode.com/problems/evaluate-reverse-polish-notation/http://oj.leetcode. ...

随机推荐

  1. 基于Opencv快速实现人脸识别(完整版)

    无耻收藏网页链接: 基于OpenCV快速实现人脸识别:https://blog.csdn.net/beyond9305/article/details/92844258 基于Opencv快速实现人脸识 ...

  2. H. The Nth Item(The 2019 Asia Nanchang First Round Online Programming Contest)

    题意:https://nanti.jisuanke.com/t/41355 给出N1,计算公式:A=F(N)Ni=Ni-1 ^ (A*A),F为类斐波那契需要矩阵快速幂的递推式. 求第k个N. 思路: ...

  3. with上下文管理 python魔法方法

    with语法在Python里很常见, 主要的利好是使用代码更简洁. 常见的使用场景有: 1. 资源对象的获取与释放. 使用with可以简化try...finally ... 2. 在不修改函数代码的前 ...

  4. Orchestrator

    MYSQL5.7下搭建Orchestrator 环境说明 在主机1,主机2,主机3上安装MySQL服务端和客户端. 主机1 主机2 主机3 操作系统 CentOS7.4 CentOS7.4 CentO ...

  5. PostgreSQL查看表、表索引、视图、表结构以及参数设置

    -- 表索引select * from pg_indexes where tablename='person_wechat_label';select * from pg_statio_all_ind ...

  6. 22 Years of KDE

    22 Years of KDEhttps://timeline.kde.org/ http://www.kdedevelopers.org/

  7. Asp.net core Enum as string + ef core value convertor

    更新 : 2019-06-08 build in convertor https://docs.microsoft.com/en-us/ef/core/modeling/value-conversio ...

  8. 《深入理解 Java 虚拟机》学习 -- 垃圾收集器

    <深入理解 Java 虚拟机>学习 -- 垃圾收集器 1. Serial 收集器(新生代) 含义: 单线程收集器. 缺点: 进行垃圾收集时,必须暂停其他所有的工作线程. 优点: 简单而高效 ...

  9. 深入理解计算机系统 第十二章 并发编程 part1 第二遍

    三种构造并发程序的方法及其优缺点 1.进程 用这种方法,每个逻辑控制流都是一个进程,由内核来调度和维护.因为进程有独立的虚拟地址空间,想要和其他流通信,控制流必须使用某种显式的进程间通信机制. 优点: ...

  10. 怎样使 html 文本文字不能被选中?

    -webkit-user-select:none; -moz-user-select:none; -ms-user-select:none; user-select:none;