【bzoj 1604】: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居 set+并查集

从网格剖分到结果外推:一文拆解HFSS快速扫频(Fast Sweep)的底层逻辑与性能调优 本文深入解析了HFSS快速扫频(Fast Sweep)技术的底层逻辑与性能调优方法。通过ALPS算法实现频带外推,快速扫频相比离散扫频和插值扫频能提升3-5倍计算效率,特别适用于天线阵列、微波滤波器等宽频带分析场景。文章详细介绍了算法架构、参数优化策略及工程实践中的精度保障机制,帮助工程师高效完成电磁仿真。 阅读详情

题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1604

1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居
Time Limit: 5 Sec Memory Limit: 64 MB
Submit: 783 Solved: 305
[Submit][Status][Discuss]
Description

了解奶牛们的人都知道,奶牛喜欢成群结队.观察约翰的N(1≤N≤100000)只奶牛,你会发现她们已经结成了几个“群”.每只奶牛在吃草的时候有一个独一无二的位置坐标Xi,Yi(l≤Xi,Yi≤[1..10^9];Xi,Yi∈整数.当满足下列两个条件之一,两只奶牛i和j是属于同一个群的:

1.两只奶牛的曼哈顿距离不超过C(1≤C≤10^9),即lXi - xil+IYi - Yil≤C.

2.两只奶牛有共同的邻居.即,存在一只奶牛k,使i与k,j与k均同属一个群.

给出奶牛们的位置,请计算草原上有多少个牛群,以及最大的牛群里有多少奶牛

Input

第1行输入N和C,之后N行每行输入一只奶牛的坐标.

Output

仅一行,先输出牛群数,再输出最大牛群里的牛数,用空格隔开.

Sample Input

4 2

1 1

3 3

2 2

10 10

  • Line 1: A single line with a two space-separated integers: the

    number of cow neighborhoods and the size of the largest cow
    
    neighborhood.
    

Sample Output

2 3

OUTPUT DETAILS:

There are 2 neighborhoods, one formed by the first three cows and

the other being the last cow. The largest neighborhood therefore

has size 3.

思路:

!曼哈顿距离=max( |(X+Y)-(x+y)|, |(X-Y)-(x-y)| )

将每个点变为(x+y,x-y)
这样两点的曼哈顿距离就是(|x1 – x2|,|y1 – y2|)

故先按x排序,维护一个队列,满足两两间的x之差《=c;
再在set中找y的前驱与后继,如满足条件则unio做并查集操作,可证明其正确性;

代码:

#include<iostream>
#include<stdio.h>
#include<set>
#include<algorithm>
#define N 100005
#define inf 1e16
typedef long long ll;
using namespace std;
struct node{
    ll x,y;
    int id;

}a[N];
int fa[N];
int cnt[N];
int an;
bool operator <(const node a,const node b)
{
    return a.y<b.y;
}
int cmp(node a,node b)
{
    return a.x<b.x;
}
int ans=0;
multiset<node> s;
int n,c;
int find(int x)
{
    if(x==fa[x]) return x;
    return fa[x]=find(fa[x]);
}
void unio(int x,int y)
{
    int pa=find(x);
    int pb=find(y);
    if(pa!=pb)
    {
        ans--;
        fa[pa]=pb;
    }
}
void work()
{
    s.insert(a[1]);
    int now=1;
    node l,r;
    for(int i=2;i<=n;i++)
    {
        while(a[i].x-a[now].x>c) s.erase(s.find(a[now++]));
        set<node>::iterator it=s.lower_bound(a[i]);
        r=*it;
        l=*--it; 
        if (a[i].y-l.y<= c)
        unio(a[i].id,l.id);
        if (r.y-a[i].y<= c)
        unio(a[i].id,r.id);
        s.insert(a[i]);


    }
}
int main()
{
    scanf("%d%d",&n,&c);
    int aa,bb;
    for(int i=1;i<=n;i++)
    {
            scanf("%d%d",&aa,&bb);
            a[i].x=aa+bb;
            a[i].y=aa-bb;
            a[i].id=i;
            fa[i]=i;
    }             
    ans=n;  
    s.insert(node{0,inf,0});
    s.insert(node{0,-inf,0});
    sort(a+1,a+1+n,cmp);       
    work();
    for(int i=1;i<=n;i++)
    {
        cnt[find(i)]++;
    }
    for(int i=1;i<=n;i++)
    {
        an=max(an,cnt[i]);
    }
    printf("%d %d",ans,an);
} 

单细胞转录组数据分析中的基因ID注释转换问题:如何解决才能注释所有的UMIcount数据? 🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。 阅读详情

相关推荐

python多线程实现http代理

python多线程实现http代理文章要求1.py socket模块2.py threading模块3.环境搭建3.1设置代理3.2搭建http简单服务器代码分析1.完整代码2.逻辑结构 文章要求 1.py socket模块 socket模块接触后很简单,我实现的是阻塞性的套接字。 需要了解到,连接套接字,监听套接字,和套接字accept()方法的返回值是元组 数据传递过程sock.recv(1024),sock.send()也不需要转换编码,直接以b"二进制流"传输 2.py threading模块 th

qq_43402663的博客 2508

bzoj 4237: 稻草人

Description JOI村有一片荒地,上面竖着N个稻草人,村民们每年多次在稻草人们的周围举行祭典。 有一次,JOI村的村长听到了稻草人们的启示,计划在荒地中开垦一片田地。和启示中的一样,田地需要满足以下条件: 田地的形状是边平行于坐标轴的长方形; 左下角和右上角各有一个稻草人; 田地的内部(不包括边界)没有稻草人。 给出每个稻草人的坐标,请你求出有多少遵从启示的田地的个数

lqybzx的专栏 1489

从零构建AI Agent集群:Docker Compose与Nginx部署实战

在AI应用开发领域,微服务架构和容器化部署已成为提升开发效率和系统可维护性的关键技术。Docker Compose作为容器编排工具,能够将多个独立服务(如Node.js、Python应用)及其依赖(数据库、缓存)封装在隔离环境中,并通过统一配置文件定义服务间的网络与依赖关系,实现一键启停。Nginx作为反向代理,则提供了统一的网络入口、请求路由和负载均衡能力,是构建高可用Web应用的基石。这种组合技术方案的价值在于,它能将复杂的AI系统(如工作流引擎、对话Agent、技能库)的部署运维复杂度大幅降低,使得开

weixin_27028523的博客 639

【bzoj1604】【奶牛的邻居】【treap+并查集】

Description 了解奶牛们的人都知道,奶牛喜欢成群结队.观察约翰的N(1≤N≤100000)只奶牛,你会发现她们已经结成了几个“群”.每只奶牛在吃草的时候有一个独一无二的位置坐标Xi,Yi(l≤Xi,Yi≤[1..10^9];Xi,Yi∈整数.当满足下列两个条件之一,两只奶牛i和j是属于同一个群的:   1.两只奶牛的曼哈顿距离不超过C(1≤C≤10^9),即lXi - xil+I

sunshinezff的专栏 571

Unity详细介绍说明限制Unity帧率的方式

在Unity开发中,帧率(FPS,Frames per Second)是一个非常重要的表现标准,它直接影响了游戏运行的流畅度。在某些应用场景里,我们可能需要手动限制帧率。限制帧率可以减少电脑的CPU和GPU负载,使运行更加稳定,同时对于移动设备来说还能有效降低电量消耗。下面就详细介绍几种限制Unity中帧率的方式。

zjw1349547081的专栏 5437

航测无人机las点云数据生成DEM

“ 做航测的同僚都知道,Pix4D或者CC(ContextCapture)都可以生成DSM,往往高程点提取以及土方计算都需要用到DEM,PhotoScan软件可以提出地面点并只应用地面点连接三角网,然而分类效果差,生成的DEM不管是平整度还是精度,都不理想。而传统等高线生DEM需要耗费较长时间,以下提供一种参考方法,供大家探讨。 ” 1 点云数据 航测类软件大多可以生成点云数据,如Pix4D,PhotoScan,CC等,此次点云数据为citymapper2相片基于CC生产的Las点云。 2 筛选地面点 筛.

qq_43173805的博客 1万+

【bzoj3544】【ONTAK2010】Creative Accounting【set】

Description 给定一个长度为N的数组a和M,求一个区间[l,r],使得(\sum_{i=l}^{r}{a_i}) mod M的值最大,求出这个值,注意这里的mod是数学上的mod Input 第一行两个整数N,M。 第二行N个整数a_i。 Output 输出一行,表示答案。 Sample Input 5 13 10 9 5 -5

sunshinezff的专栏 662

《从理念到落地:Claude Code 在真实项目中的深度实践指南》基于 Anthropic 团队内部使用经验的扩展与深度解读,一篇面向工程团队的全面实践手册

Claude Code 支持通过# 创建新的 API 端点根据以下输入创建完整的 API 端点:资源名称:$ARGUMENTS请创建以下文件:1. `src/routes/{resource}.routes.ts` - 路由定义2. `src/controllers/{resource}.controller.ts` - 控制器3. `src/services/{resource}.service.ts` - 服务层。

AI天才研究院 484

QQ群排名自动吸粉,高手们是这样玩群的!

为什么别人都可以做成功,我却做不好?其实,无论是在网上还是在线下,不管是在哪个细分领域,二八定律总是存在的,简单的说就是,总会有人做得成功,做得很好,赚大钱,也总会有人做不好;就拿玩QQ群这个事情来说吧,也同样存在规律,过多的理论我也不想说了,我还是直接用几个案例来说明吧,相信大家看完这几个案例会有所启发!1.“不学无术”的阿强阿强“不学无术”,大家都这么说,整天没事到处逛,泡网吧,吃喝玩乐,样样...

weixin_33949359的博客 314

uniapp - 微信支付报错 {“errMsg“:“requestPayment:fail:[payment微信:-1]General errors“} 详细解决办法,uniApp使用微信支付时报错

uniapp,微信支付报错,uniapp微信小程序 H5网页 安卓苹果ios真机调试时报错,uniapp真机测试微信支付报错如何解决,调用微信支付出现报错{"errMsg":"requestPayment:fail:[payment微信:-1]General errors"},微信支付提示错误,uniapp进行微信支付时报错怎么解决,如何解决微信支付报错,uniapp微信支付报错fail,uni-app真机测试ios上报错,uniapp真机测试安卓手机第一次支付成功第二次就报错了,uniapp微信支付调用第

✅ 精选推荐文章 4134

69页完整版智慧港口综合解决方案

智慧港口需求4港机远程操控等自动化改造需求自动化码头AGV无线通信及专用视频系统需求安全生产视频监控类需求港机RCMS及设备管理需求岸边智能理货码头三维全景应用智慧港口解决方案5自动化码头AGV/跨运车/无人集卡无线接入港机远控视觉及冗余无线通信视觉集卡防吊起系统集装箱码头岸边智能理货港机RCMS系统无线接入港机智能化管理(无线高清视频监控、一键报警、远程抄表系统)港口拖轮无线接入岸边溢油监测系统TD-LTE覆盖及业务终端接入港口生产管理系统港口可视化集群调度港口GiNMS综合网络设备智能管理全球作业效率最

zuoan1993的博客 2130

【BZOJ】1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居(set+并查集+特殊的技巧)

http://www.lydsy.com/JudgeOnline/problem.php?id=1604 这题太神了。。。 简直就是 神思想+神做法+神stl。。 被stl整的我想cry。。。首先,,erase的时候如果没有这个元素。。。。。。那么。。。。。(TAT)否则你就要先find(重载<)然后要注意multiset,因为你重载的<运算只判<的话会将值相同(...

185

【openwrt-21.02】T750 openwrt 双系统说明及切换方法

高度集成的 T750 平台大幅减少组件数量,为产品设计者提供更小的尺寸和更低的功耗。T750 采用先进的 7nm 制程,高度集成 5G 调制解调器和四核 Arm CPU,提供较强的功能和配置,设备制造商得以打造精巧的高性能 CPE 产品,如固定无线接入(FWA)路由器和移动热点。3. preloader 加载并启动 A 系统,若 A 系统的任一启动阶段加载失败,preloader 将重新加载并启动 A 系统 3 次,若 3 次均失败,则自动切换至 B 系统,加载并启动 B 系统。A/B 系统切换流程如下。

wgl307293845的博客 1417

bzoj 1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居(set+并查集)

1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 933  Solved: 370 [Submit][Status][Discuss] Description 了解奶牛们的人都知道,奶牛喜欢成群结队.观察约翰的N(1≤N≤100000)只奶牛,你会发

clover_hxy的博客 562

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

bzoj1604[Usaco2008 Open]Cow Neighborhoods 奶牛的邻居*

bzoj1604[Usaco2008 Open]Cow Neighborhoods 奶牛的邻居 题意: n只牛,牛结成群当且仅当两只牛曼哈顿距离≤c或存在第三头牛使两头牛与它的曼哈顿距离都≤c,求最大的群和群数。n≤100000 题解: 好神啊。先把曼哈顿距离转成切比雪夫距离,(x,y)转为(x+y,x-y)。然后按x坐标排序,用两个指针维护使x坐标差值≤c,同时将新插入的y坐标...

anheku1562的博客 177

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

BZOJ 1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居

题目 1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居 Time Limit: 5 Sec  Memory Limit: 64 MB Description 了解奶牛们的人都知道,奶牛喜欢成群结队.观察约翰的N(1≤N≤100000)只奶牛,你会发现她们已经结成了几个“群”.每只奶牛在吃草的时候有一个独一无二的位置坐标Xi,Yi

WNJXYK 779

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【BZOJ1604】[Usaco2008 Open]Cow Neighborhoods 奶牛的邻居 Treap+并查集

【BZOJ1604】[Usaco2008 Open]Cow Neighborhoods 奶牛的邻居 Description 了解奶牛们的人都知道,奶牛喜欢成群结队.观察约翰的N(1≤N≤100000)只奶牛,你会发现她们已经结成了几个“群”.每只奶牛在吃草的时候有一个独一无二的位置坐标Xi,Yi(l≤Xi,Yi≤[1..10^9];Xi,Yi∈整数.当满足下列两个条件之一,两只奶...

aodanchui1057的博客 168

bzoj1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居

Description 了解奶牛们的人都知道,奶牛喜欢成群结队.观察约翰的N(1≤N≤100000)只奶牛,你会发现她们已经结成了几个“群”.每只奶牛在吃草的时候有一个独一无二的位置坐标Xi,Yi(l≤Xi,Yi≤[1..10^9];Xi,Yi∈整数.当满足下列两个条件之一,两只奶牛i和j是属于同一个群的:   1.两只奶牛的曼哈顿距离不超过C(1≤C≤10^9),即lXi - xil+I

Doleful Aria 568

「BZOJ1604」[Usaco2008 Open] Cow Neighborhoods 奶牛的邻居

算法:曼哈顿距离转切比雪夫距离+并查集+平衡树 (这里的代码选择STL里的set实现平衡树) 储备知识 曼哈顿距离 在二维空间内,两个点之间的曼哈顿距离为它们横坐标之差的绝对值与纵坐标之差的绝对值之和。设点 A(x1,y1),B(x2,y2),则 A,B 之间的曼哈顿距离用公式可以表示为: dAB=|x1-x2|+|y1-y2| 通过公式,我们很容易得到 A,B两点间的曼哈顿距离: dAB=|6...

annazsy的博客 322

bzoj 1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居

Description了解奶牛们的人都知道,奶牛喜欢成群结队.观察约翰的N(1≤N≤100000)只奶牛,你会发现她们已经结成了几个“群”.每只奶牛在吃草的时候有一个独一无二的位置坐标Xi,Yi(l≤Xi,Yi≤[1..10^9];Xi,Yi∈整数.当满足下列两个条件之一,两只奶牛i和j是属于同一个群的: 1.两只奶牛的曼哈顿距离不超过C(1≤C≤10^9),即lXi - xil+IYi -

Shion的专栏 575

bzoj1604 [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居 (曼哈顿距离 转 切比雪夫距离+并查集+set)

bzoj1604 [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居权限题贴下题面。原题地址:http://www.lydsy.com/JudgeOnline/problem.php?id=1604题意: 了解奶牛们的人都知道,奶牛喜欢成群结队.观察约翰的N(1≤N≤100000)只奶牛,你会发现她们已经结成了几个“群”.每只奶牛在吃草的时候有一个独一无二的位置坐标Xi

Bfk的博客 564

BZOJ 1604 [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居

set+并查集+切比雪夫

sdfzrlt的博客 451

BZOJ 1604 [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居 Treap

题意:链接 方法: Treap 解析: 前几道资格赛的题水的不行,这道Gold的题就够分量辣。 首先这个曼哈顿距离啥的肯定能做文章,怎么转化是个问题,自己玩了一会没玩出来,就查了查曼哈顿距离的转化,发现这个玩意转化之后就变得有思路多了,所以这数学本领还是非常重要啊=-= 先看曼哈顿距离的定义 |x1−x2|+|y1−y2| 拆绝对值 ...

aodiyi6351的博客 148

[BZOJ1604][Usaco2008 Open]Cow Neighborhoods 奶牛的邻居 (Treap+单调队列)

题面 了解奶牛们的人都知道,奶牛喜欢成群结队.观察约翰的N(1≤N≤100000)只奶牛,你会发现她们已经结成了几个“群”.每只奶牛在吃草的时候有一个独一无二的位置坐标Xi,Yi(l≤Xi,Yi≤[1..10^9];Xi,Yi∈整数.当满足下列两个条件之一,两只奶牛i和j是属于同一个群的: 1.两只奶牛的曼哈顿距离不超过C(1≤C≤10^9),即lXi – xil+IYi – Yil≤C. 2.两...

weixin_30765577的博客 199

并查集+Set-BZOJ-1604-[Usaco2008 Open]Cow Neighborhoods 奶牛的邻居

Description 了解奶牛们的人都知道,奶牛喜欢成群结队.观察约翰的N(1≤N≤100000)只奶牛,你会发现她们已经结成了几个“群”.每只奶牛在吃草的时候有一个独一无二的位置坐标Xi,Yi(l≤Xi,Yi≤[1..10^9];Xi,Yi∈整数.当满足下列两个条件之一,两只奶牛i和j是属于同一个群的: 1.两只奶牛的曼哈顿距离不超过C(1≤C≤10^9),即lXi - xil+lYi

懒鬼的私人泳池 546

[BZOJ1604][Usaco2008 Open]Cow Neighborhoods 奶牛的邻居(multiset+并查集)

题目描述传送门题解刚开始想的是每一次只查询某一个点左下角离他最近的点,做4遍 这应该是可做的,但是为了练习stl (偷懒)想用set做,结果发现并不可做 因为貌似set的lower_bound只适用于一个关键字后来得知了一种很强的方法 就是把一个点的坐标变成(x+y,x-y) 两个点的哈弗曼距离也就变成了两维的距离的max 按照一维排序了之后,维护multiset中的点在这一维的差不超过c

zyf2000 698
上一篇: [bzoj 1613]: [Usaco2007 Jan]Running贝茜的晨练计划 dp
下一篇: 【BZOJ 1614】: [Usaco2007 Jan]Telephone Lines架设电话线 spfa+二分
ALPS233
博客等级 码龄11年 25粉丝 191原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值