CF1046I Say Hello - crazy-

news/2025/12/9 20:05:13/文章来源:https://www.cnblogs.com/lyk2010/p/19328238

二分/三分,模拟

题意

平面上有两个人。有 \(n\) 个时刻,对于每个人,已知他在每个时刻的位置,且他们总会在两个位置间匀速移动。

如果他们的距离小于等于 \(d _ 1\),并且这是他们第一次交谈或者在他们上次互相打招呼后的某个时间点后,他们的距离大于 \(d_2\),那么他们会互相打一次招呼。

计算这两位朋友打招呼的次数。

\(2 \le n \le 10 ^ 5\);

\(0 < d _ 1 < d _ 2 < 1000\)

\(0 \le A _ x, A _ y, B _ x, B _ y \le 1000\)

题解

依据题意模拟即可。需要求出两个线段运动过程中的距离最小值,可以用三分(这里用二分实现)。

显然分为三种情况:距离递减、距离递增、距离先变小后变大。

可以二分峰值。考虑时刻 \(t\in [0,1]\),若 \(t\) 加上一个极小值后比当前更大,那么峰值就在左侧。反之同理。

代码

#include<bits/stdc++.h>
// #define int long long
using namespace std;
const int Maxn=1e5+10;
const double eps=1e-6;
int n,d1,d2,ans,flag;
struct pos
{double x,y;pos(double x=0,double y=0):x(x),y(y) {}
}a[Maxn],b[Maxn];
double dis(pos x,pos y)
{return sqrt((x.x-y.x)*(x.x-y.x)+(x.y-y.y)*(x.y-y.y));
}
pos calc(pos x,pos y,double p)
{return pos(x.x+(y.x-x.x)*p,x.y+(y.y-x.y)*p);  
}
double find(pos p1,pos p2,pos q1,pos q2)
{double re=dis(p2,q2),l,r,mid;l=eps,r=1;while(l<r+eps){mid=(l+r)/2;if(dis(calc(p1,p2,mid),calc(q1,q2,mid))<dis(calc(p1,p2,mid+eps),calc(q1,q2,mid+eps))) re=min(re,dis(calc(p1,p2,mid),calc(q1,q2,mid))),r=mid-eps;else l=mid+eps;}return re;
}
pos operator+(pos x,int p) {return pos(x.x+p,x.y+p);}
signed main()
{cin>>n>>d1>>d2;for(int i=1;i<=n;i++) cin>>a[i].x>>a[i].y>>b[i].x>>b[i].y;ans=flag=bool(dis(a[1],b[1])<d1+eps);for(int i=2;i<=n;i++){double mx,mn;mx=max(dis(a[i-1],b[i-1]),dis(a[i],b[i]));mn=find(a[i-1],a[i],b[i-1],b[i]);// cout<<i<<" "<<mx<<" "<<mn<<endl;if(fabs(mx-dis(a[i-1],b[i-1]))<eps){if(mx>d2) flag=0;if(!flag && mn<d1+eps && mn<dis(a[i-1],b[i-1])) ans++,flag=(dis(a[i],b[i])+eps<d2);}else{if(dis(a[i-1],b[i-1])>d2) flag=0;if(!flag && mn<d1+eps) ans++,flag=1;if(mx>d2) flag=0;}}cout<<ans<<endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/995472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

church函数与区间算术

上一篇随笔漏了练习2.5和2.6,这边补充一下。 练习2.5要求证明如果能够将a和b的序对表示为乘积(2a)*(3b)对应的整数,我们可以只用非负整数和算术运算表示序对。 这个表述有点绕口,我最初理解为用(2a)*(3b)表示任意整…

day31-GraphRAG

GraphRAG快速入门与原理详解 一、GraphRAG快速入门介绍 当前阶段大模型的应用落地急需解决的核心问题有一个是:如何与私域数据交互。而私域数据主要的问题是:需要有效地将企业数据整合进大语言模型中,但由于大模型的…

Python 函数与 lambda 表达式的结合

示例代码 def calculate(data, func): """高阶函数:对数据列表中的每个元素应用指定函数""" result = [] for item in data: result.append(func(item)) return result numbers = [1, …

最短路径 - Dijkstra(堆优化)中优先队列的懒删除如何理解?

什么是懒删除? 在Dijkstra算法中,同一个节点可能被多次加入优先队列,但只有最短的那次才是有效的。懒删除就是"推迟删除",直到真正从队列中取出时再判断是否有效。 举个例子理解 假设有这样一个图: A -…

最短路径 - Dijkstra(堆优化)中优先队列的懒删除如何理解?

什么是懒删除? 在Dijkstra算法中,同一个节点可能被多次加入优先队列,但只有最短的那次才是有效的。懒删除就是"推迟删除",直到真正从队列中取出时再判断是否有效。 举个例子理解 假设有这样一个图: A -…

中小企业走向境外资本市场:境外上市辅导、美股上市实践与中国境外券商投行机构角色——以顺安资本为例

一、为什么境外上市辅导机构突然变得这么“重要”? 过去几年,一个现象在资本市场悄悄变得常见:很多原本只考虑新三板、北交所甚至区域股权市场的中小企业,开始把目光直接投向美股、港股等境外市场,关键词搜索里,…

解码生命蓝图,预见健康未来:北京守嘉健康基因检测业务介绍

在精准医疗时代,基因是决定个体健康、特质与潜能的核心密码。守嘉(北京)健康管理服务有限公司,作为中国文化信息协会中医药文化工作委员会的战略共建单位,以前沿的科技视野与专业的服务体系,将基因检测从科研殿堂…

2025年12月注浆工程厂家推荐:安徽林固,道路注浆、空鼓注浆、公路注浆、路基注浆、地基注浆、厂房注浆、地坪注浆、矿山注浆、多场景注浆解决方案服务商

随着基础设施建设提质升级、工程质量标准趋严及施工效率提升需求增加,专业注浆服务已从传统建筑领域逐步拓展至公路、厂房、矿山等多个场景,2025 年市场需求预计持续增长。但市场扩张也带来服务团队专业度、施工适配…

day30-AgentRag应用开发

Agentic RAG 架构 Agentic RAG 架构的基本原理 在大模型领域技术的发展历程中,提高信息检索的效率和准确性是各行各业都在急需解决的应用难题。在前几年技术地位的是检索增强生成 (RAG)技术,通过将大模型 ( LLMs ) 与…

116.Java深入学习之JVM二

116.Java深入学习之JVM二今天整理的内容为 直接内存和垃圾回收 直接内存正常来说需要一步一步才能访问到jvm的堆内存 但是直接内存: 过 java.nio(java I/O库)直接缓冲区直接分配 绕过堆,由操作系统直接管理的本地内存…

第五十八篇

今天是12月9号,上了英语

洛谷 P1203 [USACO1.1] 坏掉的项链 Broken Necklace 题解 最短代码|详细

事情是这样的: 今天我在洛谷上刷题,遇到一个UASCO的题,虽然是橙题,但是还是很有滋味的 看了看大佬的思路发现太抽象了,评论区不是%%%就是orz,因此有了这篇题解题解原文 这绝对是最短的题解了。。。(难理解别打我…

2025年12月佛山二手房拍卖机构标杆推荐:佛山房屋拍卖推荐佛山市中正易拍拍卖有限公司

随着司法拍卖机制日益规范、信息透明度持续提升,以及购房者对高性价比房产的关注度不断上升,法拍房市场在2025年迎来新一轮发展契机。尤其在佛山等珠三角核心城市,法拍住宅因价格优势、房源多样等特点,逐渐成为刚需…

第五十七篇

今天是12月8号。上了数据,建模语言和Java

2025年唐老狮:游戏开发教育商业模式深度解析与性价比评估

本文将从商业模式与性价比这一核心维度出发,对唐老狮游戏开发教学体系进行系统性剖析。当前在线职业教育市场鱼龙混杂,课程定价从免费到数万元不等,质量参差不齐。在此背景下,唐老狮凭借独特的价值定位与运营策略,…

2025年12月河南驻马店气体配送优质厂家推荐:河南宏源气体,氧气气体配送、氮气气体配送、氦气气体厂家、二氧化碳气体配送、氩气气体公司、高纯气体配送、多品类气体供应新标杆

随着工业生产精细化升级、各行业对气体品质要求提升及物流配送效率需求增加,专业气体配送服务已从传统工业领域逐步拓展至医疗、食品、化工、制造等多个行业,2025 年市场需求预计持续增长。但市场扩容也带来厂商服务…

开放式互联互通的路上,希望畅联云越走越顺

畅联云是一个开放的互联互通的云,能接入各种视频设备,物联网设备,让客户直接使用即可,不用再做底层每个设备的对接了。所谓开放,是针对萤石云、针对小米这样的封闭平台的。毕竟萤石云只能接入海康或者萤石的视频设…

2025年唐老狮:游戏开发教育领域深度解析与行业竞争力权威揭秘

引言:本文将聚焦于市场定位与竞争优势这一核心维度,对唐老狮在游戏开发教育领域的商业逻辑、竞争壁垒及行业价值进行系统性剖析,为学习者、教育从业者及行业观察者提供具备决策参考价值的客观分析。 背景与概况:唐…

吴恩达深度学习课程四:计算机视觉 第一周:卷积基础知识(二)卷积参数

此分类用于记录吴恩达深度学习课程的学习笔记。 课程相关信息链接如下:原课程视频链接:[双语字幕]吴恩达深度学习deeplearning.ai github课程资料,含课件与笔记:吴恩达深度学习教学资料 课程配套练习(中英)与答案…

2025年唐老狮:游戏开发课程体系全景解析与行业应用价值深度评估

引言:本文将从课程体系完整性与进阶路径设计这一核心维度出发,对唐老狮的游戏开发教学体系进行系统性剖析,重点评估其课程架构的逻辑性、技能覆盖的全面性以及学习路径的科学性,为有意向进入游戏开发领域的学习者提…