洛谷 P2013 无线电测向


题目

题目描述

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

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

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

输入输出格式

输入格式:
文件的第一行是一个整数,表示灯塔的数目 N(N<=30)。以下 N 行,每行表示一个灯塔,为灯塔名称(名称是 20 个以下的字母),X 坐标和 Y坐标。它们都用空格隔开。

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

具体如下:

输入数据 数据的含义

方向 船的航行方向;

名称1 角度1 第一个灯塔信息的名称,灯塔的方位;

名称2 角度2 第二个灯塔信息的名称,灯塔的方位。

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

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

输入输出样例

输入样例#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

题解

跟据两个灯塔朝的方向求出斜率k1,k2,如果k1≠k2,则说明船的位置可求,然后就是求两条线段的交点的问题了

然而,我在判断字符串时卡了半天。。。


代码

#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#define pi 3.14159265358
using namespace std;int n;
double ka,kb,ax,ay,m,angle,xa,ya,xb,yb;
char ch;
struct string{char w[25];
} s[35];int x[35],y[35];int main()
{cin>>n;for (int i=1;i<=n;i++){cin>>s[i].w>>x[i]>>y[i];}cin>>m;m-=90;cin>>s[0].w;for (int i=1;i<=n;i++) if (!strcmp(s[i].w,s[0].w)) {xa=x[i];ya=y[i];break;}cin>>angle;angle=180-m-angle;ka=tan(pi/180*angle);cin>>s[0].w;for (int i=1;i<=n;i++) if (!strcmp(s[i].w,s[0].w)) {xb=x[i];yb=y[i];break;}cin>>angle;angle=180-m-angle;kb=tan(pi/180*angle);if (ka==kb) {printf("NO ANSWER");return 0;}ax=(yb-ya+ka*xa-kb*xb)/(ka-kb);ay=ka*(ax-xa)+ya;printf("%.2lf %.2lf\n",ax,ay);return 0;
}

洛谷 P2013 无线电测向相关推荐

  1. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

  2. 洛谷 P1142 轰炸

    洛谷 P1142 轰炸 题目描述 "我该怎么办?"飞行员klux向你求助. 事实上,klux面对的是一个很简单的问题,但是他实在太菜了. klux要想轰炸某个区域内的一些地方,它们 ...

  3. 洛谷 P1387 最大正方形

    P1387 最大正方形 题目描述 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长. 输入输出格式 输入格式: 输入文件第一行为两个整数n,m(1<=n,m<=10 ...

  4. 洛谷P2763 试题库问题

    题目:https://www.luogu.org/problemnew/show/P2763 题目描述 «问题描述: 假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性. ...

  5. 动态规划——洛谷_P1057传球游戏

    题目: 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏.游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球, ...

  6. 洛谷P1417 烹调方案

    洛谷P1417 烹调方案 如果是一般的01背包的话 选的先后是没关系的 但是这题选的先后是有关系的,因为他的价值是随着时间而变化的, 而你的01背包是做不到先选2再选1的 那么我们就跟国王游戏一样 用 ...

  7. 记忆优化搜索(简单题)(洛谷P3183 [HAOI2016]食物链 )( P5635 【CSGRound1】天下第一 )

    昨天做了蓝桥杯的时候,发现自己对于记忆优化搜索甚是不熟悉,所以今天随便找了几个基础题做做,顺便写下两片题解,顺便用了一下devc++敲的代码,发现没有代码补全真的可以说是灰常难受了... 洛谷P318 ...

  8. 洛谷 - 试炼场(全部题目备份)

    整理的算法模板合集: ACM模板 目录 1.新手村 1 - 1 洛谷的第一个任务 1 - 2 顺序与分支 1 - 3 循环!循环!循环! 1 - 4 数组 1 - 5 简单字符串 1 - 6 过程函数 ...

  9. 洛谷专题训练 ——【算法1-1】模拟与高精度

    洛谷题单[算法1-1]模拟与高精度 ACM-ICPC在线模板 题单链接: [算法1-1]模拟与高精度 下面的这一坨都是洛谷题单上的东东 题单简介 恭喜大家完成了第一部分语言入门,相信大家已经可以使用 ...

最新文章

  1. Spark累加器(Accumulator)陷阱及解决办法
  2. 【每周CV论文推荐】 初学深度学习图像分割必须要读的文章
  3. 很多初接触乐鑫ESP32/ESP8266 模块时,都不清楚怎么为 ESP32、ESP8266 系列模组烧录固件呢?这里以启明云端WT8266-S5(ESP-12F)和ESP32-WROOM模块为例说明
  4. boost::gil::color_spaces_are_compatible用法的测试程序
  5. 经典C语言程序100例之六零
  6. SAP CRM text Transfer mode
  7. 给大家推荐一款高大上的代码高亮插件(sublime,github风格)——highlight.js
  8. vsftp 使用虚拟用户
  9. 2008R2 RDS架构
  10. 《云阅》一个仿网易云音乐UI,使用Gank.Io及豆瓣Api开发的开源项目
  11. [POI2010]Divine Divisor
  12. ad自动连线_ad如何自动布线
  13. ldaptemplate 分页_分页机皮带跑偏调整方法
  14. 关于Matlab插值的问题,这些应该够用了吧
  15. uv视差检测障碍物_社区组成–视差效果,节拍检测,精美游戏和艺术研究
  16. 必备知识---TCP三次握手和四次挥手以及SSL四次握手
  17. sketch html尺寸,SketchSize一键生成多尺寸,为何你的设计效率如此之高?
  18. 【SpringBoot】SpringBoot 整合 MyBatis
  19. 诗人温古与洛夫的特别情缘:冥冥之中的有意安排
  20. 服务器系统具备自检能力,服务器内存自检自动重启

热门文章

  1. 中投证券分析报告(0608)
  2. Win32汇编项目总结——猎杀潜航
  3. 3D激光扫描三维重建——5.(matlab)系统框架
  4. 2016计算机二级vpf分值,08年计算机二级VPF辅导:查询文件的操作
  5. 计算机网络(BYSEE)第五章 运输层 学习笔记(0606)
  6. python 生成高斯斑块
  7. Java组件化开发教程!工信部java软件开发工程师证书
  8. 一遍就能学会,超详细的AI配音教学,文本转语音
  9. 理解 .NET Core中的Channel篇之一——通道入门
  10. A Web Crawler With asyncio Coroutines