sicily 1070. Hansel and Grethel
2011-07-12 11:18
441 查看
#include<iostream> //求两直线交点 #include<stdio.h> #include<cmath> using namespace std; #define pi acos(-1.0) int main() { int cases; double x1,y1,d1,x2,y2,d2,k1,k2,x,y; cin>>cases; while(cases--) { cin>>x1>>y1>>d1>>x2>>y2>>d2; //直线 y=kx+b k1=tan((450-d1)*pi/180);k2=tan((450-d2)*pi/180); //计算斜率 x=(y2-k2*x2-(y1-k1*x1))/(k1-k2); y=(k1*k2*x1-k1*k2*x2+k1*y2-k2*y1)/(k1-k2); //如果写成 y=k1*x+y1-k1*x1 是会WA,可能是因为x本身有误差 printf("%.4f %.4f\n",x,y); } return 0; } /* 题目规定 0 = North, 90 = East, 180 = South, 270 = West 0°->90° 90°->0° 180°->270° 270°->180° 相当于: 360°->90° 90°->360° 180°->270° 270°->180° 据此我们找出真正的角度值: 450°- d (d是输入的角度值) 转换成弧度来表示:( 450°- d )*π/180° 弧度的正切值 k=tanα即为直线斜率. 设两直线方程: y1=k1*x1+b1, y2=k2*x2+b2 交点坐标(x,y) 解得 x=(b2-b1)/(k1-k2), y=(k1*b2-k2*b1)/(k1-k2) ,其中 b2=y2-k2*x2,b1=y1-k1*x1 ,代入既得答案 */
相关文章推荐
- [sicily online]1070. Hansel and Grethel
- 1070[Hansel and Grethel]
- poj 1254 Hansel and Grethel
- POJ 1254 Hansel and Grethel 笔记
- poj 1254 Hansel and Grethel
- poj 1254 Hansel and Grethel 直线求交
- 1254 Hansel and Grethel
- zoj 1560 Hansel and Grethel(求两条直线的交点)
- Sicily 1405. Mahershalalhashbaz, Nebuchadnezzar, and Billy Bob Benjamin Go to the Regionals
- Sicily 13858. Goldilocks and the N Cows
- No plugin found for prefix 'jetty' in the current project and in the plugin groups 【转】
- HDU1026 Ignatius and the Princess I 【BFS】+【路径记录】
- [HDU 1028] Ignatius and the Princess III 母函数
- the latest ButterKnife and Android-Butterknife-Zelezny
- The differences between Carriage Return(CR) and Line Feed(LF)
- What’s the difference between “Array()” and “[]” while declaring a JavaScript array?
- HDU-#1026 Ignatius and the Princess I(BFS+优先队列+路径存储)
- google+ sign in and get the oauth token 转摘:https://gist.github.com/ianbarber/5170508
- Git问题:Cannot update paths and switch to branch 'dev' at the same time.
- Use Unicode and Hide the Console in Windows