ZOJ 2855Google Map

来源:互联网 发布:大闹天空坐骑进阶数据 编辑:程序博客网 时间:2024/06/16 22:13

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2855

#include <iostream>#include <queue>#include <set>#include <vector>#include <cstring>#include <cstdio>#include <string>#include <cstring>#include <algorithm>#include <string.h>#include <cmath>using namespace std;#define PI acos(-1)double getX(double longitude){    return longitude * PI / 180;}double getY(double latitude){    return log(tan(PI / 4.0 + (latitude * PI / 180.0) / 2));}int main(){    double lo, la , t;    while (cin >> lo >> la >> t){        cout << "t";        double up = getY(85);        double down = getY(-85);        double left = getX(-180);        double right = getX(180);        double x = getX(lo);        double y = getY(la);        while (t--){            if (x < (left+right) / 2){ //确定左右,左                right = (left + right) / 2;                if (y > (up+down) / 2){ //在上面                    cout << "q";                    down = (up + down) / 2;                }                else{                    cout << "t";                    up = (up + down) / 2;                }            }            else{ //右边                left = (left + right) / 2;                if (y > (up + down) / 2){                    cout << "r";                    down = (up + down) / 2;                }                else                {                    cout << "s";                    up = (up + down) / 2;                }            }        }        cout << endl;    }}
0 0
原创粉丝点击