BNUOJ34977夜空中最亮的星(数学,向量的应用)

夜空中最亮的星

Time Limit: 2000ms

Memory Limit: 65536KB

64-bit integer IO format: %lld      Java class name: Main

Prev Submit Status Statistics Discuss Next

Font Size: 
+
 
-

Type:  
None Graph Theory 
    2-SAT     Articulation/Bridge/Biconnected Component
     Cycles/Topological Sorting/Strongly Connected Component
     Shortest Path 
        Bellman Ford         Dijkstra/Floyd Warshall
     Euler Trail/Circuit
     Heavy-Light Decomposition
     Minimum Spanning Tree
     Stable Marriage Problem
     Trees 
    Directed Minimum Spanning Tree 
    Flow/Matching         Graph Matching
             Bipartite Matching
             Hopcroft–Karp Bipartite Matching
             Weighted Bipartite Matching/Hungarian Algorithm
         Flow 
            Max Flow/Min Cut 
            Min Cost Max Flow 
DFS-like     Backtracking with Pruning/Branch and Bound
     Basic Recursion 
    IDA* Search     Parsing/Grammar
     Breadth First Search/Depth First Search
     Advanced Search Techniques
         Binary Search/Bisection
         Ternary Search
 Geometry 
    Basic Geometry     Computational Geometry
     Convex Hull 
    Pick‘s Theorem Game Theory
     Green Hackenbush/Colon Principle/Fusion Principle
     Nim 
    Sprague-Grundy Number 
Matrix     Gaussian Elimination
     Matrix Exponentiation
 Data Structures 
    Basic Data Structures 
    Binary Indexed Tree 
    Binary Search Tree 
    Hashing     Orthogonal Range Search
     Range Minimum Query/Lowest Common Ancestor
     Segment Tree/Interval Tree
     Trie Tree 
    Sorting     Disjoint Set
 String 
    Aho Corasick     Knuth-Morris-Pratt
     Suffix Array/Suffix Tree
 Math 
    Basic Math     Big Integer Arithmetic
     Number Theory 
        Chinese Remainder Theorem 
        Extended Euclid 
        Inclusion/Exclusion 
        Modular Arithmetic 
    Combinatorics         Group Theory/Burnside‘s lemma
         Counting 
    Probability/Expected Value 
Others     Tricky 
    Hardest     Unusual
     Brute Force 
    Implementation     Constructive Algorithms
     Two Pointer 
    Bitmask     Beginner
     Discrete Logarithm/Shank‘s Baby-step Giant-step Algorithm
     Greedy 
    Divide and Conquer 
Dynamic Programming

Tag it!

想要在陌生的地方不迷路,分清楚方向是很重要的,看星星就是一个很好的辅助方法。在一段时间内每晚的同一时间,天上星星的排布是几乎不变的。每颗星星的亮暗程度都有一个标识,称为星等,用一个实数来表示。这个实数的值越小,代表星星越亮,在灯光明亮的城市中能看到的星星的星等范围为
 ~ 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<stdio.h>
#include<math.h>
#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;i<n;i++)
        {
            scanf("%lf%lf%lf",&x,&y,&s);
            if(s<star[0].d)
            {
                star[1].x=star[0].x;
                star[1].y=star[0].y;
                star[1].d=star[0].d;
                star[0].x=x; star[0].y=y; star[0].d=s;
            }
            else if(s<star[1].d)
            {
                star[1].x=x; star[1].y=y; star[1].d=s;
            }
        }
        for(int i=0;i<2;i++)
        scanf("%lf%lf",&st[i].x,&st[i].y);
        xl[0].x=star[0].x-star[1].x;
        xl[0].y=star[0].y-star[1].y;
        dis[0]=sqrt(xl[0].x*xl[0].x+xl[0].y*xl[0].y);

        xl[1].x=st[0].x-st[1].x;
        xl[1].y=st[0].y-st[1].y;
        dis[1]=sqrt(xl[1].x*xl[1].x+xl[1].y*xl[1].y);
        jd=180.0/PI*acos((xl[0].x*xl[1].x+xl[0].y*xl[1].y)/(dis[0]*dis[1]));
        if(jd>180)jd=360-jd;
        printf("%.3lf\n",jd);
    }
}
时间: 2024-10-12 19:06:38

BNUOJ34977夜空中最亮的星(数学,向量的应用)的相关文章

[音乐欣赏]夜空中最亮的星,张杰,苏阳,新闻晚高峰结束曲

夜空中最亮的星,张杰 夜空中最亮的星 能否听清 那仰望的人 心底的孤独和叹息 夜空中最亮的星 能否记起 曾与我同行 消失在风里的身影 我祈祷拥有一颗透明的心灵 和会流泪的眼睛 给我再去相信的勇气 越过谎言去拥抱你 每当我找不到存在的意义 每当我迷失在黑夜里 夜空中最亮的星 请指引我前行 夜空中最亮的星 是否知道 曾与我同行的身影 如今在哪里 夜空中最亮的星 是否在意 是等太阳升起 还是意外先来临 我宁愿所有痛苦都留在心里 也不愿忘记你的眼睛 给我再去相信的勇气 越过谎言去拥抱你 每当我找不到存在

夜空中最亮的星

夜空中最亮的星 能否听清 那仰望的人 心底的孤独和担心 夜空中最亮的星 能否记起 曾与我同行 消失在风里的身影 我祈祷拥有一颗透明的心灵 和会流泪的眼睛 给我再去相信的勇气 越过谎言去拥抱你 每当我找不到存在的意义 每当我迷失在黑夜里 夜空中最亮的星 请指引我靠近你   夜空中最亮的星 是否知道 曾与我同行的身影如今在哪里 夜空中最亮的星 是否在意 是等太阳升起还是意外先来临 我宁愿所有痛苦都留在心里 也不愿忘记你的眼睛 给我再去相信的勇气 越过谎言去拥抱你 每当我找不到存在的意义 每当我迷失在

夜空中最亮的星:慕课网新手学习指南_慕课手记

首先标题是为了凑够标准的十个字,如果你这会去数了一下然后想评论说不是十个字,那我佩服你的求知精神...进来的肯定不是看我瞎扯淡的,我们步入正题. 慕课网作为国内不能说是最大,但是起码口碑最好的一个IT学习的网站,受到了很多人的欢迎,但是在推荐给朋友的过程中,我就发现了一些问题,那就是纯小白根本不知道怎么开始学习.这里我要说一下什么叫做纯小白,你以为不知道变量,命令提示符,HTTP协议,这些就是小白了吗?那你就错了,我今天要说的是连怎么设置IP地址,怎么设置百度为首页,连自己的操作系统是winxp

Java中的日历类/集合类/数学类/正则表达式/数组工具类等的常用方法与基本功能

一. Arrays 针对数组操作的工具类,提供了一些针对数组排序和二分搜索的方法.常用方法:1.public static String toString(int[] a):将int类型的数组转换成字符串.转换成字符串后输出形式: ([元素1,元素2,元素3...]),Arrays在底层重写了toString方法.2.public static void sort(int[] a):对指定的 int 型数组按数字升序进行排序.3.public static int binarySearch(in

[转]浅谈离散数学中数理逻辑与集合论的数学本质

申华?,?张胜元?-?<大学教育>?-?2013? ? ? ? ? ? ? ? 离散数学本质上是一门数学课程,是学生数学知识结构和数学素质的重要组成部分.数学这门学科体系虽然很庞大,但大致可分为连续型.离散型和随机型这三大类.在大多数的理工科专业的课程设计中,数学类课程通常包括:高等数学.线性代数.离散数学.概率论与数理统计等.高等数学能提供处理连续型的数学问题需要的数学工具:线性代数与离散数学则提供处理离散型数学问题的数学工具:而概率与统计则提供处理随机型数学问题的数学工具. 正如徐洁磐在文

《澄明之境》:二十年期货交易员的经验:投资没有圣杯,控制风险,在市场阶梯式上升过程中赚钱。3星

一位二十年经验的期货交易员的经验.我读后总结作者的经验是:控制风险,小赚不亏长时间来看就能赚大钱,看准了短暂的市场上升期赚钱.作者由于前期太好赌,赚了钱又赔进去不少,事后总结经验,偏好哲学,我看完全书感觉哲学仅仅是让作者不要去过分冒险,不要去做非分之想,这些经验好像不用哲学也可以学会. 全书排版字大行疏,13万字.两个小时就可以看完. 以下是书中一些信息的摘抄: 1:不可能找到百战百胜.完美的市场交易理论,必须放弃寻找投资圣杯的努力.p6 2:随着投资认识的深入,我发现投资成功的核心不是去抓更多

在XSLT样式表中插入VBScript脚本进行数学计算

继上次我写了篇文章<在XSLT样式表中使用莱布尼兹级数计算π的近似值>后,我发现在XSLT中使用模板的递归调用,有下面两个缺点:1)易读性差,有失灵活:2)效率低下.因此,我又想了一个新的策略实现在XSLT中的一些复杂的计算工作,这就是在XSLT中嵌入脚本,本文以VBScript为例描述了这一过程 现有XML文档pi.xml如下: <?xml version="1.0" encoding="utf-8"?> <?xml-styleshe

没涉及到最值求解;观点:矩阵乘法无法表达出结果。 现实生活中事件、现象的数学表达

小结: 1. 矩阵就是一张普通的数表 矩阵乘法它表达的是一件具体的有现实生活场景的事件:但是不能借助它表达所有的事件. 它能,可能是只能,表达的是这个事件是通过列元素和行元素的相乘,而不能在拆分为单独的两个2行-列元素: 事件的原子不是某个行/列元素,而是一行/列元素. 3个菜市场卖着不同价格的白菜.萝卜.土豆:求总采购支出:采购量矩阵*价格矩阵 3个菜市场卖着不同价格的白菜.萝卜.土豆,现在在总采购支出计入运费,而不同的菜市场不同蔬菜的单位重量运费为价格的不同倍:例如第一个菜市场的白菜.萝卜.

[3D数学]向量

<1>向量与标量: 向量:有方向有长度(非负,比如(1,0,0) 方向指向X+,长度为1.normalize向量规范化,向量方向不变,但是长度为1,计算向量夹角一般规范化向量,求出cosa的值,acos反余弦求夹角) 标量:只有长度(强调的是数值) <2>向量的维度: 2维(0,1)  3维(0,0,1)  4维(0,1,1,0)  4维在CG语言中:比如color就有4个维度rgba  _Time也有四个维度:值得注意的是:2维用x,y表示 3维用x,y,z表示 4维用x,y,z