程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> BNUOJ34977夜空中最亮的星(數學,向量的應用)

BNUOJ34977夜空中最亮的星(數學,向量的應用)

編輯:C++入門知識

BNUOJ34977夜空中最亮的星(數學,向量的應用)


夜空中最亮的星

2000ms 65536KB 64-bit integer IO format: %lld Java class name: Main Prev Submit Status Statistics Discuss Next Font Size:

想要在陌生的地方不迷路,分清楚方向是很重要的,看星星就是一個很好的輔助方法。在一段時間內每晚的同一時間,天上星星的排布是幾乎不變的。每顆星星的亮暗程度都有一個標識,稱為星等,用一個實數來表示。這個實數的值越小,代表星星越亮,在燈光明亮的城市中能看到的星星的星等范圍為 - \infty ~ 3.5等左右。

Map同學害怕丟掉Map這個稱號,每晚都勤勞地記下當天帝都星星的排布情況。他面向正北方向站立,將看到的天空映射到一張巨大的直角坐標系上,那麼每顆星星都擁有了一個坐標。

這天Map同學來到了美麗的哈爾濱,抬頭看見了最亮的星星木星和第二亮的北河三。他朝向他以為的北方站立,像在帝都一樣地計算出它們的坐標。但實際上他並不是總能憑直覺找到北的。而且對於使用的坐標系的刻度的大小也沒有辦法把握。

那麼現在他想知道,最少需要轉多少角度,他才能夠面向正北。

Input

第一行為數據組數t(t<=1000)。

接下來,對每組數據:

第一行為n(2<=n<=1000),表示前一天在帝都看到的星星的數量。

以下為n行,每行3個實數,分別為n顆星星的坐標和星等。

最後一行為4個實數,分別為木星和北河三的坐標。

以上實數絕對值不超過1000。π取3.14159265358。

Output

輸出一行,為所需要轉的最小角度,保留3位小數。

Sample Input

1
2
0 0 -2
1 0 0
0 0 0 1.2

Sample Output

90.000

Source

第十二屆北京師范大學程序設計競賽決賽 Prev Submit Status Statistics Discuss Next
#include
#include
#define PI 3.14159265358
typedef struct nnn
{
    double x,y,d;
}node;
int main()
{
    int t,n;
    double s,jd,x,y,dis[2];
    node star[2],st[2],xl[2];
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        jd=10000;
        star[0].d=star[1].d=10000;
        for(int i=0;i180)jd=360-jd;
        printf("%.3lf\n",jd);
    }
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved