当前位置: 首页 > news >正文

打卡信奥刷题(2525)用C++实现信奥 P2013 无线电测向

P2013 无线电测向

题目描述

有天线定位装置的船能通过接收当地灯塔信号来确定自己的位置。每个灯塔固定在已知点上并发出特有的信号。当船检测到信号,它可通过旋转天线直到信号达到最大强度。这样就可确定自身与该灯塔的位置关系。只要接收到两个灯塔的信息,就有可能确定船当前的位置。

编程任务:通过一对灯塔信息来确定船的位置。

灯塔和船的位置被确定在一个直角坐标系内。xxx轴正向指向东,yyy轴正向指向北。船的航行路线从正北开始按顺时针用度表示。北是0∘0^\circ0,东是90∘90^\circ90,南是180∘180^\circ180,西是270∘270^\circ270。灯塔与船的位置关系用相对于船的航行方向顺时针用度表示。

输入格式

文件的第一行是一个整数,表示灯塔的数目NNN。以下NNN行,每行表示一个灯塔,为灯塔名称,xxx坐标和yyy坐标。它们都用空格隔开。

灯塔信息下面是船的信息包括三行,一行是船的方向,其余两行是所接收到的灯塔信号。

具体如下:

输入数据数据的含义
方向船的航行方向
名称111,角度111第一个灯塔信息的名称,灯塔的方位
名称222,角度222第二个灯塔信息的名称,灯塔的方位

灯塔的方位为船与灯塔所在的直线与船的航行方向的夹角(从船的航行方向开始顺时针)。222个数据用空格隔开。

输出格式

输出船的位置(精确到222位小数)。如果无法确定船的位置,应输出NO ANSWER(不能使用小写)。

输入输出样例 #1

输入 #1

5 a 1 5 b 1 1000 c 2 4 d 51 60 e 153 79 30 e 160 d 210

输出 #1

160.83 123.41

说明/提示

对于100%100 \%100%的数据,1≤N≤301 \le N \le 301N30,灯塔名称是202020个以下的字母。

C++实现

#include<bits/stdc++.h>#definepiipair<int,int>usingnamespacestd;constdoublepi=3.1415926535;// 建议选取较高精度intn;map<string,pii>mp;intmain(){cin>>n;for(inti=1;i<=n;++i){intx,y;string name;cin>>name>>x>>y;mp.insert(make_pair(name,make_pair(x,y)));}string s1,s2;doubleangleShip,angle1,angle2;cin>>angleShip;angleShip=90-angleShip;// 转化为与 x 轴的夹角cin>>s1>>angle1;cin>>s2>>angle2;doublex1=mp[s1].first,y1=mp[s1].second;doublex2=mp[s2].first,y2=mp[s2].second;angle1=1.0*(angleShip-angle1)*pi/180;// x 轴夹角转换与弧度制转换angle2=1.0*(angleShip-angle2)*pi/180;if(angle1==angle2){// 判断夹角cout<<"NO ANSWER";return0;}doublek1=tan(angle1),k2=tan(angle2);// 计算斜率,传参弧度制doublex=(y2-y1-k2*x2+k1*x1)/(k1-k2);// 套上述结论doubley=k1*(x-x1)+y1;printf("%.2lf %.2lf",x,y);// 保留两位小数return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

http://www.cnnetsun.cn/news/15811.html

相关文章:

  • 用1/10的成本跑RAG?向量压缩+模型蒸馏+智能缓存实战指南
  • 毕业设计实战:基于SpringBoot+MySQL的机动车号牌管理系统,从0到1避坑全流程,导师都说稳!
  • 高密度互联:连接AI“积木”的精密桥梁
  • 2025十大项目管理工具揭晓:从轻量协作到企业级方案全解析
  • 26Java基础之特殊文本文件、日志技术
  • AI投喂Geo优化系统哪家经验丰富?深度解析行业领先服务商
  • 专业的煤矿水仓清淤公司
  • GPT-5.2 的数据基石、原生多模态与隐私承诺
  • 16、Lotus Domino 6在Linux系统中的数据备份与安全保障
  • Hikari-LLVM15终极指南:5个实战场景掌握代码混淆技术
  • 如何快速解决OpenVLA模型微调后推理中的动作归一化问题
  • 故障注入测试:构建高韧性系统的工程实践
  • WinSetView终极指南:如何快速统一Windows文件夹视图设置
  • ImageGPT技术解析:像素序列预测如何重构视觉AI底层架构
  • Beyond Compare 5 密钥生成完整指南:从原理到实战应用
  • 手艺人札记:在开源系统中重塑技术的温度
  • 5种方法彻底解决番茄小说离线下载难题
  • 史诗级漏洞警报:ASP.NET Core 被曝 CVSS 9.9 分漏洞,几乎所有.NET 版本无一幸免!
  • Cider音乐播放器终极指南:跨平台Apple Music体验全解析
  • 力扣刷题:最大子数组和
  • ⭐力扣刷题:岛屿数量
  • Screenbox媒体播放器:深度解析Windows平台的现代播放解决方案
  • 5步重构OpenSTM扫描隧道显微镜项目架构
  • DXVK终极配置手册:Linux游戏性能优化的完整解决方案
  • 活字格低代码平台:企业数字化转型的技术架构与实践剖析
  • NVIDIA CUDA 13.1权威指南:CUDA Tile驱动下一代GPU编程,性能全面提升
  • Figma中文界面完整指南:快速实现设计工具本地化
  • 重新定义AI视觉评估:多维度评分系统深度解析
  • Hap视频编解码器:专业级QuickTime硬件加速终极指南
  • 阿里Wan2.1开源:消费级GPU如何重塑视频创作生态