第一维直接遍历 第二维用线段树维护每个最左端可以得到的贡献

在线段树上每次删除一个点会影响到 X   X-R   X-2*R  3个值 最多操作1e5次 复杂度 6*n*logn(删了还要加回来

#include<bits/stdc++.h>
using namespace std;
const int MAXN = 300005;
int num[MAXN];
int number[MAXN];
struct Seg_Tre {int l, r;int w;
} tree[MAXN << 2];
inline void push_up(int x) {tree[x].w = max(tree[x << 1].w, tree[(x << 1) | 1].w);
}
inline void build(int x, int ll, int rr) {tree[x].l = ll, tree[x].r = rr;if (tree[x].l == tree[x].r) {tree[x].w = number[ll];return;}int m = (ll + rr) >> 1;build(x << 1, ll, m);build((x << 1 | 1), m + 1, rr);push_up(x);
}
inline void change_point(int x, int aim, int add) {if (tree[x].l == tree[x].r) {tree[x].w += add;return;}int m = (tree[x].l + tree[x].r) >> 1;if (aim <= m) {change_point(x << 1, aim, add);} else {change_point((x << 1) | 1, aim, add);}push_up(x);
}
inline int ask_interval(int x, int ll, int rr) {if (tree[x].l > rr || tree[x].r < ll)return -1;if (tree[x].l >= ll && tree[x].r <= rr) {return tree[x].w;}int now = 0;int m = (tree[x].l + tree[x].r) >> 1;if (ll <= m) {now = max(now, ask_interval(x << 1, ll, m));}if (rr > m) {now = max(now, ask_interval((x << 1) | 1, m + 1, rr));}return now;
}
vector<int> G[MAXN];
int main() {int n, r;int x, y;scanf("%d %d", &n, &r);for (int i = 1; i <= n; i++) {scanf("%d %d", &x, &y);G[x].push_back(y);num[y]++;}for (int i = 0; i <= 100000; i++) {for (int j = 0; j <= 2; j++) {if (i + j * r <= 100000) {number[i] += num[i + j * r];}}}build(1, 0, 100000);int ansnow = 0;for (int i = 0; i <= 100000; i++) {int now = 0;for (int j = 0; j <= 2; j++) {int u = i + j * r;if (u > 100000)break;for (int v : G[u]) {now++;for (int k = 0; k <= 2; k++)if (v - k * r >= 0)change_point(1, v - k * r, -1);}}ansnow = max(ansnow, now + ask_interval(1,0,100000));for (int j = 0; j <= 2; j++) {int u = i + j * r;if (u > 100000)break;for (int v : G[u]) {now++;for (int k = 0; k <= 2; k++)if (v - k * r >= 0)change_point(1, v - k * r, 1);}}}printf("%d\n", ansnow);return 0;
}

View Code

转载于:https://www.cnblogs.com/Aragaki/p/11371160.html

牛客第十场 F.Popping Balloons相关推荐

  1. 牛客第三场 F Popping Balloons —— 思维 + 搞题

    题目链接:点我啊╭(╯^╰)╮ 题目大意: 二维平面,nnn 个气球     要求水平方向射三枪,垂直射三枪     每一枪可以打穿一行或一列的所有气球     水平或垂直的相邻枪的距离为 rrr   ...

  2. 2019牛客多校训练第十场F Popping Balloons

    2019牛客多校训练第十场F Popping Balloons 题意:二维平面内给你若干个点,然后你可以在x轴和y轴分别射三枪(每一枪的间隔是R),问最多能射掉多少气球. 题解:贪心.这个应该只能算作 ...

  3. 2019牛客多校第十场 F.Popping Balloons

    使用线段树,将(1,1+r,1+2r),(2,2+r,2+2r),(3,3+r,3+2r)以此类推,每个看成一个节点,对y进行建树,然后枚举x,维护最大值即可. 代码如下: #include<c ...

  4. 2019暑假牛客第5场-F.maximum clique 1-最大独立集(输出方案)

    题面: 思路: 建图方法若两个数有且仅有一个位不同,那么连边(从左边指向右边). 根据某个数的二进制表达式中有奇数个1还是偶数个1,分成左边和右边. 对于二分图,跑匈牙利求最大匹配,最大独立集=节点数 ...

  5. 牛客第六场 H-Hopping Rabbit

    牛客第六场 H-Hopping Rabbit 给出平面上的n个矩形,一只兔子从(x0+0.5,y0+0.5)(x_0+0.5,y_0+0.5)(x0​+0.5,y0​+0.5)出发,每一次可以平行于x ...

  6. 【2020年牛客暑假第九场】E题 Groundhog Chasing Death

    [2020年牛客暑假第九场]E题 Groundhog Chasing Death 质因子分解 题意 思路 方法一:先枚举iii再枚举公共质因子 Code(286ms) 方法二:先枚举公共质因子再枚举i ...

  7. 牛客小白月赛61 F.选座椅(双指针)

    牛客小白月赛61 F.选座椅(双指针) 显然 ( l , r ) (l,r) (l,r)满足 ( l , r + 1 ) (l,r+1) (l,r+1)满足. 那么可以考虑双指针,枚举 l l l,然 ...

  8. 牛客小白月赛2 F.黑黑白白

    牛客小白月赛2 F.黑黑白白 题目链接 题目描述 艮为山,动静得宜,适可而止:兑为泽,刚内柔外,上下相和. 艮卦:兼山,艮:君子以思不出其位.财帛常打心头走,可惜眼前难到手,不如意时且忍耐,逢着闲事休 ...

  9. 题解 | Popping Balloons-2019牛客暑期多校训练营第十场F题

    题目来源于牛客竞赛:https://ac.nowcoder.com/acm/contest/discuss 题目描述: 输入描述: 输出描述: 示例1: 示例2: 题解: 代码: #include&l ...

最新文章

  1. 自动生成Hibernate框架结构
  2. OC第八节 内存管理高级
  3. Nacos注册中心——启动相关的配置
  4. bootstrap5
  5. netty实现mysql协议_基于Netty模拟解析Binlog
  6. sublime text3支持Vue语法高亮显示步骤(转)
  7. windows mysql kip grant tables_数据库mysql数据库mysql: [ERROR] unknown option '--skip-grant-tables'...
  8. 在linux下使用360随身wifi 2 | 李凡希的blog,在Linux下使用“360随身WiFi 2”
  9. xy的跨浏览器在线编辑器超级简易版
  10. python解压文件(自用)
  11. 计算机知识认证,[IT认证]计算机基础知识.ppt
  12. gentoo 修改键盘映射
  13. 提升体验:为游戏添加声色
  14. 小米9下拉状态栏失效
  15. 【Leetcode_SQL】1179.重新格式化部门表
  16. 用python画字母b_用Python 画个多啦A梦,小猪佩奇
  17. 合工大宣城校区计算机老师,合肥工业大学计算机与信息学院导师教师师资介绍简介-△李春华...
  18. Chrome插件 Tamper Dev
  19. 【睿慕课点云处理】第一章-基础知识
  20. 微信小程序订单语音播报

热门文章

  1. linux 安装bt下载软件,centos6.3安装linux下的BT软件qbittorrent的方法
  2. 在QNX平台上开发Java应用程序 (更新版) 2004年写的呢
  3. Java是什么?Java有哪些特点?
  4. Python pandas 里面的数据类型坑,astype要慎用
  5. C++STL标准库学习笔记(一)sort
  6. 2023CUPT第七题 法拉第波 思路和解法
  7. Socialbook告诉你网红营销和ROI的关系~
  8. Oracle学习之基础
  9. 科技赋能农业变革:“大数据+农业”重新定义产业体系
  10. word 把题注序号 图一.1变成图1.1的简单方法