HOJ 2016 Conic Distance
2012-11-23 13:21
197 查看
http://acm.hit.edu.cn/hoj/problem/view?id=2016
给出两个点的 计算这两点在圆锥面上的最短距离
把圆锥展开为扇形 两点间距离利用余弦定理计算
注意角度
给出两个点的 计算这两点在圆锥面上的最短距离
把圆锥展开为扇形 两点间距离利用余弦定理计算
注意角度
#include <stdio.h> #include <math.h> double min(double a, double b); int main() { const double pi=acos(-1); double r, h, d1, a1, d2, a2; double R, length;//母线和弧长 double theta0, theta, angle;//3D夹角、平面扇形夹角、两给定点与扇形顶点连线夹角 double distance; while (scanf("%lf %lf %lf %lf %lf %lf", &r, &h, &d1, &a1, &d2, &a2) != EOF) { R = sqrt(r * r+h * h); length = 2 * pi * r; theta = length / R; theta0 = fabs(a1-a2); angle = theta0 * theta / 360.0; angle = min(angle , theta-angle); distance = sqrt(d1 * d1 + d2 * d2 - 2 * d1 * d2 * cos(angle) );//余弦定理 printf("%.2lf\n", distance); } return 0; } double min(double a, double b) { if(a > b) return b; return a; }
相关文章推荐
- 网易2016研发工程师编程题:小易的升级之路
- Value【NOIP2016提高A组模拟8.17】
- Skype For Business Server 2016 无法共享PPT和白板 推荐
- NKOJ 4241 (NOIP 2016)蚯蚓(单调队列)
- VK Cup 2016 - Qualification Round 1——B. Chat Order(试手stack+map)
- SQL Server 2016数据库下载
- Rancher:2016的答卷
- 阿里巴巴2016校招笔试题(含答案)
- HOJ 2226&POJ2688 Cleaning Robot(BFS+TSP(状态压缩DP))
- Binary 【NOIP2016提高A组模拟8.17】
- 依然迷茫的2016
- 华为2016校园招聘上机笔试题
- {小结}NOIP2016提高A组模拟8.19(雅礼联考day2)
- 我的2016——培训、工作,回首大学
- NOIP 2016 换教室 期望DP
- VK Cup 2016 - Qualification Round 1 (Russian-Speaking Only, for VK Cup teams) C. Promocodes with Mistakes 水题
- Linux 系统下原版 texlive 2016 的安装与配置
- 马哥2016全套视频 linux运维视频教程
- HDU5950 (2016沈阳现场赛)