經緯度

題目描述
給定地球的兩個經緯度坐標,問這兩個點的直線距離。假設地球為球體,半徑為6371009米。
輸入描述:
第一行一個整數T表示數據組數。
接下來n行,每行四個數lat1, lng1, lat2, lng2分別表示兩個點的經緯度。
正數表示北緯和東經。
負數表示南緯和西經。
數據保證合法。
輸出描述:
n行表示答案。
答案保留到米。
示例1
輸入
1
43.466667 -80.516667 30.058056 31.228889
輸出
802333

代碼如下:

 #include < algorithm>#include < iostream>#include < cstring>#include < cstdlib>#include < climits>#include < cstdio>#include < string>#include < vector>#include < queue>#include < cmath>#include < stack>#include < map>#include < set>using namespace std;
typedef unsigned int u32;
typedef long long i64;
typedef unsigned long long u64;
typedef vector<int> IV;
typedef vector<bool> BV;
typedef pair< int,int> II;
typedef vector<II> IIV;#define For(t,v,c) for(t::const_iterator v=c.begin(); v!=c.end(); ++v)
const int INF = 0x7FFFFFFF;
const double eps = 1E-10;
const double PI = acos(-1);
const double R = 6371009;
double torad(double deg) {return deg / 180 * M_PI;
}
void get_coord(double lat, double lng, double& x, double& y, double& z) {lat = torad(lat);lng = torad(lng);x = R * cos(lat) * cos(lng);y = R * cos(lat) * sin(lng);z = R * sin(lat);
}
double sqr(double x) { return x * x; }
double dist(double x1, double y1, double z1, double x2, double y2, double z2) {return sqrt(sqr(x1 - x2) + sqr(y1 - y2) + sqr(z1 - z2));
}
int main() {int Case;double lat1, lng1, lat2, lng2, d1, d2;double x1, y1, z1, x2, y2, z2;scanf("%d", &Case);while(Case--) {scanf("%lf%lf%lf%lf", &lat1, &lng1, &lat2, &lng2);get_coord(lat1, lng1, x1, y1, z1);get_coord(lat2, lng2, x2, y2, z2);d1 = dist(x1, y1, z1, x2, y2, z2);d2 = 2 * asin(d1 / (2 * R)) * R;printf("%.0lf\n", d2 - d1);}return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/380120.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/380120.shtml
英文地址,請注明出處:http://en.pswp.cn/news/380120.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

遠控免殺專題(18)-ASWCrypter免殺

免殺能力一覽表 幾點說明&#xff1a; 1、上表中標識 √ 說明相應殺毒軟件未檢測出病毒&#xff0c;也就是代表了Bypass。 2、為了更好的對比效果&#xff0c;大部分測試payload均使用msf的windows/meterperter/reverse_tcp模塊生成。 3、由于本機測試時只是安裝了360全家桶…

Hibernate 筆記4 實現對數據庫的增刪改查

1 準備 首先在mysql數據庫中建表User,并添加相關信息。 user表結構如下。 ---------------------------------------------------------| Field | Type | Null | Key | Default | Extra |------------------------------------------------…

Direct3D中的繪制(3)

立方體——只比三角形稍微復雜一點&#xff0c;這個程序渲染一個線框立方體。 這個簡單的繪制和渲染立方體的程序的運行結果如下圖所示&#xff1a; 源程序&#xff1a; /************************************************************************************** Renders a …

遠控免殺專題(19)-nps_payload免殺

免殺能力一覽表 幾點說明&#xff1a; 1、上表中標識 √ 說明相應殺毒軟件未檢測出病毒&#xff0c;也就是代表了Bypass。 2、為了更好的對比效果&#xff0c;大部分測試payload均使用msf的windows/meterperter/reverse_tcp模塊生成。 3、由于本機測試時只是安裝了360全家桶…

VS2005中使用WebDeploymentProject的問題

近來做Web項目&#xff0c;VS2005中發布網站時默認發布大批的程序集&#xff0c;這給升級網站時造成很大麻煩&#xff0c;所以偶從MS下載了個WebDeploymentProject的插件&#xff08;下載地址http://download.microsoft.com/download/c/c/b/ccb4877f-55f7-4478-8f16-e41886607a…

操作系統中的多級隊列調度

多級隊列調度 (Multilevel queue scheduling) Every algorithm supports a different class of process but in a generalized system, some process wants to be scheduled using a priority algorithm. While some process wants to remain in the system (interactive proce…

編寫一程序,輸入一個字符串,查找該字符串中是否包含“abc”。

import java.lang.String.*;//這里調用java.long.String.contains()方法&#xff1b; import java.util.Scanner; public class shit {public static void main(String[] args) {Scanner wsq new Scanner(System.in);String str wsq.next();boolean status str.contains(&qu…

顯示消息提示對話框(WebForm)

1: /// <summary>2: /// 顯示消息提示對話框。3: /// Copyright (C) Maticsoft4: /// </summary>5: public class MessageBox6: { 7: private MessageBox()8: { 9: }10: 11: …

借助格式化輸出過canary保護

0x01 canary保護機制 棧溢出保護是一種緩沖區溢出攻擊緩解手段&#xff0c;當函數存在緩沖區溢出攻擊漏洞時&#xff0c;攻擊者可以覆蓋棧上的返回地址來讓shellcode能夠得到執行。當啟用棧保護后&#xff0c;函數開始執行的時候會先往棧里插入cookie信息&#xff0c;當函數真…

什么叫灰度圖

任何顏色都有紅、綠、藍三原色組成&#xff0c;假如原來某點的顏色為RGB(R&#xff0c;G&#xff0c;B)&#xff0c;那么&#xff0c;我們可以通過下面幾種方法&#xff0c;將其轉換為灰度&#xff1a; 1.浮點算法&#xff1a;GrayR*0.3G*0.59B*0.11 2.整數方法&#xff1a;Gra…

各抓包軟件的之間差異_系統軟件和應用程序軟件之間的差異

各抓包軟件的之間差異什么是軟件&#xff1f; (What is Software?) Software is referred to as a set of programs that are designed to perform a well-defined function. A program is a particular sequence of instructions written to solve a particular problem. 軟件…

輸入一字符串,統計其中有多少個單詞(單詞之間用空格分隔)(java)

import java.util.*; class Example3{public static void main(String args[]){Scanner sc new Scanner(System.in);String s sc.nextLine();//這里的sc.nextLine&#xff08;&#xff09;空格也會記數&#xff1b;StringTokenizer st new StringTokenizer(s," ")…

為何苦命干活的人成不了專家?

所謂熟能生巧&#xff0c;但離專家卻有一個巨大的鴻溝&#xff0c;在農田干活的農民怎么也成不了水稻專家&#xff0c;推廣之&#xff0c;那些在本職工作上勤勤懇懇的人&#xff0c;在業務上總有一個不可沖破的瓶頸。 這種現象非常普遍&#xff0c;這就是為什么很多人很勤奮&am…

今天發布一個新網站www.heijidi.com

新網站發布了&#xff0c;歡迎訪問&#xff0c;關于國產機的 網站 www.heijidi.com 轉載于:https://www.cnblogs.com/liugod/archive/2008/03/26/1122753.html

ret2shellcdoe

ret2shellcode的關鍵是找到一個緩沖區&#xff0c;這個緩沖區是可讀寫寫可執行的&#xff0c;我們要想辦法把我們的shellcdoe放到這個緩沖區&#xff0c;然后跳轉到我們的shellcode處執行。 例子&#xff1a; #include <stdio.h> #include <string.h> char str1[…

stl取出字符串中的字符_從C ++ STL中的字符串訪問字符元素

stl取出字符串中的字符字符串作為數據類型 (String as datatype) In C, we know string basically a character array terminated by \0. Thus to operate with the string we define character array. But in C, the standard library gives us the facility to use the strin…

Object類的hashCode()方法

public class day11 {public static void main(String[] args) {Object obj1 new Object();int hashCode obj1.hashCode();System.out.println(hashCode);}} hashCode public int hashCode()返回該對象的哈希碼值。支持此方法是為了提高哈希表&#xff08;例如 java.util.Ha…

調整Tomcat上的參數提高性能[轉]

Webtop Performance Test w/ Tomcat(調整Tomcat上的參數提高性能) Login several users with one second between each login. After the 25th user, the users begin to experience poor performance, to the point where some users are receiving “Page cannot be display…

RecordSet中的open完全的語法

RecordSet中的open完全的語法是:SecordSet.Open Source,ActiveConnection,CursorType,LockType,Options例如&#xff1a; rs.open sql,conn,1,3CursorTypeadOpenForwardOnly 0 默認游標類型, 為打開向前游標, 只能在記錄集中向前移動。adOpenKeyset 1 打開鍵集類型的游標, 可以…

用篩選法求100之內的素數

#include <stdio.h> int main() {int i ,j ,a[100];//定義一個數組存放1~100&#xff1b;for(i2; i<100; i)//由于1既不是素數也不是質素&#xff0c;所以不用考慮1&#xff0c;直接從2開始&#xff1b;{a[i]i;//以次賦值&#xff0c;2~100&#xff1b;for(j2; j<i…