Sicily Hansel and Grethel
【题意】
给定两个点相对于Hansel and Grethel的横纵坐标,以及它们与北方向的夹角[0,360),求Hansel and Grethel所在位置的坐标。
【思路】
根据两个参考点坐标和方向角,求出两条直线的方程,两条直线的交点就是所求的坐标。
求直线方程时分斜率存在和斜率不存在两种情况,斜率存在时分(0,90]υ(270,360)和(90,180)υ(180,270]两种情况。其实两种情况应该可以合并,我看有人写的代码很短。我写的代码比较长,但是思路是比较直接的,很多功能重复的地方也就多复制几次好了。
值得注意的一点就是两个double型的值相比较是不能用等于号的。以后遇到这样的题最重要的是要细心一步一步来,不要把会做的题做错了。
1 #include<iostream> 2 #include<cmath> 3 #include<cstdio> 4 using namespace std; 5 6 const double pi=acos(-1.0); //还是计算出来精确,手动赋值不行 7 8 double get_k(double a) //由一个点所处的角度得到直线斜率 9 { 10 double k; 11 if((a>0 && a<=90) || (a>270 && a<360)) 12 { 13 k=tan((90-a)*pi/180); 14 } 15 else if((a>90 && a<180) || (a>180 && a<=270)) 16 { 17 k=tan((270-a)*pi/180); 18 } 19 return k; 20 } 21 22 int main() 23 { 24 int t; 25 cin>>t; 26 while(t--) 27 { 28 double x1,y1,a1,x2,y2,a2; 29 scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&a1,&x2,&y2,&a2); 30 double k1,k2,x,y,a,b; 31 32 if((a1!=0 && a1!=180) && (a2!=0 && a2!=180)) //两条直线斜率都存在 33 { 34 k1=get_k(a1); 35 k2=get_k(a2); 36 37 if(fabs(k1-k2)>0.00000001) 38 { 39 a=k1*x1-y1; //a、b为中间变量 40 b=k2*x2-y2; 41 x=(a-b)/(k1-k2); 42 y=k1*x-a; 43 44 printf("%.4lf ",x); 45 printf("%.4lf\n",y); 46 } 47 else 48 { 49 x=(x1+x2)/2; 50 y=(y1+y2)/2; 51 52 printf("%.4lf ",x); 53 printf("%.4lf\n",y); 54 } 55 } 56 else if( (a1==0 || a1==180) && (a2!=0 && a2!=180) ) //直线1斜率不存在,直线2存在 57 { 58 k2=get_k(a2); 59 x=x1; 60 y=k2*(x1-x2)+y2; 61 62 printf("%.4lf ",x); 63 printf("%.4lf\n",y); 64 } 65 else if( (a2==0 || a2==180) && (a1!=0 && a1!=180) ) //直线1斜率存在,直线2不存在 66 { 67 k1=get_k(a1); 68 x=x2; 69 y=k1*(x2-x1)+y1; 70 71 printf("%.4lf ",x); 72 printf("%.4lf\n",y); 73 } 74 else //两条直线斜率都不存在 75 { 76 x=x1; 77 y=(y1+y2)/2; 78 79 printf("%.4lf ",x); 80 printf("%.4lf\n",y); 81 } 82 } 83 return 0; 84 }
转载于:https://www.cnblogs.com/mrlaker/archive/2012/07/15/2592664.html
Sicily Hansel and Grethel相关推荐
- sicily 1070. Hansel and Grethel
#include<iostream> //求两直线交点#include<stdio.h>#include<cmath>using namespace std;#de ...
- POJ 1254 Hansel and Grethel G++ 数学 巧妙
#include <iostream> #include <cstdio> #include <cmath> #include <iomanip> us ...
- 1070[Hansel and Grethel]
题目鬼长的. 意思就是给出两已知点坐标,还有目的坐标与这两点坐标的角度值,求出目的坐标. 一下想到的是坐标系上两线交叉的位置即目的坐标 但是再求斜率的时候遇上了麻烦- - 于是就找了一份代码研究~ 下 ...
- poj 1254 Hansel and Grethel 直线求交
题意: 通过点和方向给出两条直线,求他们的交点. 分析: 裸的直线求交,向量做法可避免特殊情况的的讨论. 代码: //poj 1254 //sep9 #include <iostream> ...
- zoj 1560 Hansel and Grethel(求两条直线的交点)
题目地址 题目大意:给出2个点及其各自夹角,求2条直线的交点 解题思路:数学公式推导,用tan()求斜率时要将角度转换成弧度 #include <iostream> #include &l ...
- Hansel and Grethel ACM pku http://acm.pku.cn/JudgeOnline/problem?id=1254
1254是一道非常简单的关于平面直线相交问题的计算,只要注意一点: 斜率并不是所给出的指南针上的度数而应该是(90-degree):解决了此问题后所有的问题都迎刃而解了 我的代码如下: #includ ...
- ACM 网址和一些建议
USACO http://ace.delos.com/usacogate 美国著名在线题库,专门为信息学竞赛选手准备 TJU http://acm.tongji.edu.cn/ 同济大学在线题库,唯一 ...
- ACM大量习题题库及建议培养计划
ACM大量习题题库 ACM大量习题题库 现在网上有许多题库,大多是可以在线评测,所以叫做Online Judge.除了USACO是为IOI准备外,其余几乎全部是大学的ACM竞赛题库. USACO h ...
- ACM题目和培养训练!!!
ACM大量习题题库 ACM大量习题题库 现在网上有许多题库,大多是可以在线评测,所以叫做Online Judge.除了USACO是为IOI准备外,其余几乎全部是大学的ACM竞赛题库. USACO ht ...
最新文章
- R语言使用ggplot2包和plotrix包绘制带有错误条(error bars)的可视化结果:使用ggplot2包绘制具有置信区间的可视化图像、使用plotrix包绘制具有置信区间的可视化图像
- 熟悉Linux实验实训,非常详细的Linux操作系统与实训教程实验(三)
- 【Android】安卓布局文件中xmlns属性
- ERROR: Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: ‘
- 国际掉期与衍生工具协会(ISDA)
- 探索Julia(part8)--循环语句和条件语句
- ZOJ 1242 Carbon Dating
- Android学习导航线路
- GBaseStudio连接操作GBase数据库
- 微信小程序发送微信公众号模板消息
- 浅析图的邻接矩阵进行平方运算的含义
- 全面解决网站被攻击解决办法
- 空指针异常的原因分析
- C语言停车场管理系统
- 新研究调查Masimo ORi™(氧储备指数)能否用作避免全麻期间高氧状态的指数
- Bond随你入坑kubernetes之:入门篇 - 搭建多节点集群+Dashboard+监控
- windows下 python 使用 pip 安装TA-Lib报错的原因及解决方法
- 【MySQL】MyCAT三大配置文件详解(MySQL专栏启动)
- 亲历5.12汶川大地震----杨大伟作为志愿者14日奔赴汶川等地抗震救灾
- 多单、空单、开仓、平仓、持仓、现货、期货、通货膨胀.......
热门文章
- 推荐表的特长聘请html,毕业推荐表中的有何特长怎么写?
- 惠普服务器系统装好服务器黑屏,惠普装win7系统黑屏怎么解决_惠普装win7系统黑屏如何修复...
- 记录:tensoflow改错TypeError: Cannot interpret feed_dict key as Tensor: Can not convert a float into a Te
- 2021年全球半导体分立器件市场规模大约为1898亿元,预计2028年将达到3255亿元
- c++初学者——一个简单的电话簿系统制作
- 惊!终于知道为什么我的电脑在升级之后磁盘容量看起来让人心忧
- PHP Excel类Spreadsheet_Excel_Writer简介
- 四川省房产测绘实施细则[2010版]-2
- 安卓手机怎么不用ROOT激活XPOSED框架的方法
- C#通过引用AForge获取摄像头数据