力扣测试链接:https://leetcode.cn/problems/xepqZ5/

思路:

观察数据范围,发现x或y的坐标最大到1e9的大小,不能直接建立差分数组,所以需要进行离散化操作

将所有坐标提取出来,排序后,以下标作为新的坐标位置,再按照离散化操作后进行二维差分操作,从而得到重叠次数最多的答案

题解:

typedef  long long ll;
class Solution {
public: void add(int x1,int y1,int x2,int y2,vector<vector<ll>>&diff)
{
diff[x1][y1]++;
diff[x1][y2+1]--;
diff[x2+1][y1]--;
diff[x2+1][y2+1]++; } int search(ll x,vector<ll>&xp)
{
int ans=0;
int l=0;
int r=xp.size()-1;
while(l<=r)
{
int mid = (l+r)/2;
if(xp[mid]>=x)
{
ans=mid;
r=mid-1;
}
else
{
l=mid+1;
}
}
return ans+1;
} int fieldOfGreatestBlessing(vector<vector<int>>& forceField) {
set<ll>x;
set<ll>y;
for(int i=0;i<forceField.size();i++)
{
ll xx = forceField[i][0];
ll yy = forceField[i][1];
ll r = forceField[i][2];
x.insert((xx<<1)+r);
x.insert((xx<<1)-r);
y.insert((yy<<1)-r);
y.insert((yy<<1)+r);
} int sizex = x.size();
int sizey = y.size();
vector<ll>xp;
vector<ll>yp;
for(auto i:x)
{
xp.push_back(i);
}
for(auto i:y)
{
yp.push_back(i);
} sort(xp.begin(),xp.end());
sort(yp.begin(),yp.end()); vector<vector<ll>>diff(sizex+2,vector<ll>(sizey+2,0)); for(int i=0;i<forceField.size();i++)
{
ll x = forceField[i][0];
ll y = forceField[i][1];
ll r = forceField[i][2];
ll x1 = (x<<1)-r;
ll y1 = (y<<1)-r;
ll x2 = (x<<1)+r;
ll y2 = (y<<1)+r;
ll x3 = search(x1,xp);
ll x4 = search(x2,xp);
ll y3 = search(y1,yp);
ll y4 = search(y2,yp);
add(x3,y3,x4,y4,diff);
}
ll ans=0;
for(int i=1;i<diff.size();i++)
{
for(int j=1;j<diff[0].size();j++)
{
diff[i][j]+=diff[i-1][j]+diff[i][j-1]-diff[i-1][j-1];
ans = max(ans,diff[i][j]);
}
}
return ans; }
};

LCP 74. 最强祝福力场 (差分,前缀和,二分,离散化)的更多相关文章

  1. Codeforces Global Round 2 D 差分 + 前缀和 + 二分

    https://codeforces.com/contest/1119/problem/D 题意 有n个数组,每个数组大小为\(10^{18}+1\)且为等差数列,给出n个数组的\(s[i]\),q次 ...

  2. CodeForces 1119D(差分+前缀和+二分)

    题意:给你一个数组,数组每次每个数都+1,有q次查询每一查询+L到+R中出现的所有不重复的数字个数. +L到+R其实就相当于是0到+(R-L+1) 感觉自己写的好啰嗦,直接上代码加注释: 1 #inc ...

  3. Educational Codeforces Round 61 C 枚举 + 差分前缀和

    https://codeforces.com/contest/1132/problem/C 枚举 + 差分前缀和 题意 有一段[1,n]的线段,有q个区间,选择其中q-2个区间,使得覆盖线段上的点最多 ...

  4. HRBUST 1909——理工门外的树——————【离线处理,差分前缀和】

    理工门外的树 Time Limit: 1000 MS Memory Limit: 32768 KB 64-bit integer IO format: %lld , %llu Java class n ...

  5. HDU 5419——Victor and Toys——————【线段树|差分前缀和】

    Victor and Toys Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/131072 K (Java/Others ...

  6. HDU 5452——Minimum Cut——————【树链剖分+差分前缀和】ACdream 1429——Diversion——————【树链剖分】

    Minimum Cut Time Limit: 3000/2000 MS (Java/Others)    Memory Limit: 65535/102400 K (Java/Others)Tota ...

  7. 洛谷 P3258 [JLOI2014]松鼠的新家 树链剖分+差分前缀和优化

    目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例: 输出样例: 说明 说明 思路 AC代码 优化 优化后AC代码 总结 题面 题目链接 P3258 [JLOI2 ...

  8. Glider(前缀和+二分)

    题目链接:Glider Gym-101911B 解题分析:下落的高度一定,是h.在没有气流的地方每秒下落1:所以可以转化为经过无气流地带的时间总长为h. 那么很显然从一个有气流地带的开始,选择下落,那 ...

  9. Acwing:102. 最佳牛围栏(前缀和 + 二分)

    农夫约翰的农场由 NN 块田地组成,每块地里都有一定数量的牛,其数量不会少于1头,也不会超过2000头. 约翰希望用围栏将一部分连续的田地围起来,并使得围起来的区域内每块地包含的牛的数量的平均值达到最 ...

  10. Codeforces 975 前缀和二分算存活人数 思维离直线速度相同判平行

    A /* Huyyt */ #include <bits/stdc++.h> using namespace std; typedef long long ll; ]; ]; map< ...

随机推荐

  1. Kali Linux 从入门到实战:系统详解与工具指南

    Kali Linux 从入门到实战:系统详解与工具指南 1. Kali Linux 简介 Kali Linux 是一款基于 Debian 的 Linux 发行版,专为 渗透测试 和 网络安全审计 设计 ...

  2. L1-3、Promp常见任务类型与写法模板

    --掌握任务类型,写 Prompt 就像套模板 想把 AI 当成好用的工具,第一步不是写 Prompt,而是识别任务类型.只有你先知道"我到底要它干嘛",才能说出"它该怎 ...

  3. 获取Spring ApplicationContext容器上下文对象实例

    Spring ApplicationContext 容器可以加载配置文件中定义的 bean,将所有的 bean 集中在一起,当有请求的时候分配 bean.如果说BeanFactory是Spring的心 ...

  4. P5749 [IOI2019] 排列鞋子

    算是一种新思路吧. 题目要求我们求最少的对调次数,想到了什么?求逆序对个数,我们只需将原来的 \(S_i\) 数组转化一下,求其逆序对个数即可. 转化规则为:从头开始,对于每个还未被赋值的 \(S_i ...

  5. Java IO<2> 输入/输出流 FileInputStream/FileOutputStream

    输入/输出流 按操作 数据单位不同分为:流 字节流(8 bit) ,字符流(16 bit) 按数据流的 流向不同分为: 输入流,输出流 按流的 角色的不同分为:节点流,处理流 ![image-2 ...

  6. HDFS常用命令操作

    HDFS常用操作命令如下: 查询目录 # 查看/目录下的目录和文件 hadoop fs -ls / # 递归查看/目录下的目录和文件 hadoop fs -lsr / 创建目录 # 新增目录/user ...

  7. ChatMoney化身恋爱大师来帮助你收获完美爱情!

    本文由 ChatMoney团队出品 介绍说明 在纷繁复杂的情感世界里,寻找真爱的道路常常充满迷茫和困惑.但现在,有了 AI 智能体恋爱大师,为您的爱情之旅点亮明灯. AI 智能体恋爱大师并非传统意义上 ...

  8. 用AI工具ChatMoney一键创作,让你的公众号文章流量飙升!

    本文由 ChatMoney团队出品 引言 想不想你的公众号文章一炮而红?是不是羡慕那些动不动就10W+的爆款文章?别眼红了,用ChatMoney,你也可以做到!这货可不是普通的写作工具,它是你的文章变 ...

  9. WPF实现简易计算器(MVVM、控件自定义样式)

    目录 WPF实现简易计算器(MVVM.控件自定义样式) 界面 文件结构 项目代码 WPF实现简易计算器(MVVM.控件自定义样式) 运行环境:VS2022 .Net framework4.8 完整项目 ...

  10. 一个基于 .NET 开源、模块化 AI 图像生成 Web 用户界面

    前言 今天大姚给大家分享一个基于 .NET 开源.模块化 AI 图像生成 Web 用户界面:SwarmUI. 项目介绍 SwarmUI (原 StableSwarmUI)是一个基于 .NET 开源(M ...