POJ 2354 Titanic

输入好恶心

先把经纬度的时分秒转换成度,再根据东西经,南北纬取正负号。然后根据球上两点距离公式求。

最后注意精度要取大一点

#include<stdio.h>
#include<math.h>
const double pi=acos(-1.0);
const double eps=1e-5;
int main(){
    #ifndef ONLINE_JUDGE
    freopen("in.txt","r",stdin);
    #endif // ONLINE_JUDGE
    double s1[3],s2[3];
    int n,a;
    char c1,c2,c3;
    char st[10],s[100];
    for(int i=0;i<9;i++) scanf("%s",s);

    scanf("%lf^%lf'%lf\" %s",&s1[0],&s1[1],&s1[2],st);
    scanf("%s",s);

    double a1,a2,b1,b2;
    a1=s1[0]+s1[1]/60+s1[2]/3600;
    if(st[0]=='S') a1=-a1;

    scanf("%lf^%lf'%lf\" %s.",&s1[0],&s1[1],&s1[2],st);
    //printf("%lf %lf %lf",s1[0],s1[1],s1[2]);
    b1=s1[0]+s1[1]/60+s1[2]/3600;
    if(st[0]=='W') b1=-b1;

    for(int i=0;i<5;i++) scanf("%s",s);
    scanf("%lf^%lf'%lf\" %s",&s1[0],&s1[1],&s1[2],st);
    a2=s1[0]+s1[1]/60+s1[2]/3600;
    if(st[0]=='S') a2=-a2;

    scanf("%s",s);
    scanf("%lf^%lf'%lf\" %s",&s1[0],&s1[1],&s1[2],st);
    b2=s1[0]+s1[1]/60+s1[2]/3600;
    if(st[0]=='W') b2=-b2;
    scanf("%s",s);

    a1=a1*pi/180;a2=a2*pi/180;b1=b1*pi/180;b2=b2*pi/180;
    double theta,ans;
    theta=acos(cos(a1)*cos(a2)*cos(b1-b2)+sin(a1)*sin(a2));
    ans=6875*0.5*theta;
    //printf("%f",theta);
    printf("The distance to the iceberg: %.2f miles.\n",ans);
    if(ans<100-0.005) printf("DANGER!\n");
    return 0;
}
时间: 2024-11-07 02:32:35

POJ 2354 Titanic的相关文章

[转] POJ几何分类

转自:http://blog.csdn.net/tyger/article/details/4480029 计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题目,模板很重要,模板必须高度可靠.3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面大部分是模板.如果代码一片混乱,那么会严重影响做题正确率.4.注意精度控制.5.能用整数的地方尽量用整数,要想到扩大数据的方法(扩大一倍,或扩大sqrt2).因为整数不用考虑浮点误差,而且运算比浮点快. 一.点

【转】计算几何题目推荐

打算转下来好好做计算几何了. 原文地址:http://blog.sina.com.cn/s/blog_49c5866c0100f3om.html 其实也谈不上推荐,只是自己做过的题目而已,甚至有的题目尚未AC,让在挣扎中.之所以推荐计算几何题,是因为,本人感觉ACM各种算法中计算几何算是比较实际的算法,在很多领域有着重要的用途计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题目,模板很重要,模板必须高度可靠.3.要注意代码的组织,因为计算几何的题目很容易上两百行

优质题表(机密版)

转载请注明出处:http://www.cnblogs.com/dashuzhilin/p/4556803.html 思维题: poj 1528 poj 1597 poj 2538 poj 2608 poj 2612 poj 2361 poj 2339 poj 2664 uva 10894 uva 10921   uva 10922   uva 10929 uva 10931   uva 10800   uva 10878 uva 10976   uva 10323   uva 201 poj 2

ACM训练方案-POJ题目分类

ACM训练方案-POJ题目分类 博客分类: 算法 ACM online Judge 中国: 浙江大学(ZJU):http://acm.zju.edu.cn/ 北京大学(PKU):http://acm.pku.edu.cn/JudgeOnline/ 杭州电子科技大学(HDU):http://acm.hdu.edu.cn/ 中国科技大学(USTC):http://acm.ustc.edu.cn/ 北京航天航空大学(BUAA)http://acm.buaa.edu.cn/oj/index.php 南京

转载:poj题目分类(侵删)

转载:from: POJ:http://blog.csdn.net/qq_28236309/article/details/47818407 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K–0.50K:中短代码:0.51K–1.00K:中等代码量:1.01K–2.00K:长代码:2.01K以上. 短:1147.1163.1922.2211.2215.2229.2232.2234.2242.2245.2262.2301.2309.2313.2334.2346.2348

poj题库分类

初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:     (1)图的深度优先遍历和广度优先遍历.     (2)最短路径算法(dijkstra,bellman-ford,floyd,hea

POJ题目(转)

http://www.cnblogs.com/kuangbin/archive/2011/07/29/2120667.html 初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:     (

Poj 题目分类

初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:     (1)图的深度优先遍历和广度优先遍历.     (2)最短路径算法(dijkstra,bellman-ford,floyd,hea

POJ题目分类(转)

初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:     (1)图的深度优先遍历和广度优先遍历.     (2)最短路径算法(dijkstra,bellman-ford,floyd,hea