HDOJ Osu! 5078【2014鞍山区域赛I题-水】

Osu!

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)

Total Submission(s): 1263    Accepted Submission(s): 660

Special Judge

Problem Description

Osu! is a very popular music game. Basically, it is a game about clicking. Some points will appear on the screen at some time, and you have to click them at a correct time.

Now, you want to write an algorithm to estimate how diffecult a game is.

To simplify the things, in a game consisting of N points, point i will occur at time ti at place (xi, yi), and you should click it exactly at ti at (xi, yi). That means you should move your cursor
from point i to point i+1. This movement is called a jump, and the difficulty of a jump is just the distance between point i and point i+1 divided by the time between ti and ti+1. And the difficulty of a game is simply the difficulty
of the most difficult jump in the game.

Now, given a description of a game, please calculate its difficulty.

Input

The first line contains an integer T (T ≤ 10), denoting the number of the test cases.

For each test case, the first line contains an integer N (2 ≤ N ≤ 1000) denoting the number of the points in the game.  Then N lines follow, the i-th line consisting of 3 space-separated integers, ti(0 ≤ ti < ti+1 ≤ 106),
xi, and yi (0 ≤ xi, yi ≤ 106) as mentioned above.

Output

For each test case, output the answer in one line.

Your answer will be considered correct if and only if its absolute or relative error is less than 1e-9.

Sample Input

2
5
2 1 9
3 7 2
5 9 0
6 6 3
7 6 0
10
11 35 67
23 2 29
29 58 22
30 67 69
36 56 93
62 42 11
67 73 29
68 19 21
72 37 84
82 24 98

Sample Output

9.2195444573
54.5893762558

Hint

In memory of the best osu! player ever Cookiezi.

Source

2014 Asia AnShan Regional Contest

Recommend

liuyiding   |   We have carefully selected several similar problems for you:  5342 5341 5340 5339 5338

水。

就是求最大的困难点。困难点就是两个点之间的距离除以两个点出现的时间差

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <algorithm>

using namespace std;

struct Point{
	double t,x,y;
}point[1000010];

double dist(Point a,Point b)
{
	return (sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)))/(b.t-a.t);
}
int main()
{
	int t;
	scanf("%d",&t);
	while(t--){
		int M;
		scanf("%d",&M);
		double res;
		Point temp;
		Point x1,x2;
		for(int i=0;i<2;i++){
			scanf("%lf%lf%lf",&point[i].t,&point[i].x,&point[i].y);
		}
		res=dist(point[0],point[1]);
		temp.x=point[1].x;temp.y=point[1].y;temp.t=point[1].t;
		for(int i=2;i<M;i++){
			scanf("%lf%lf%lf",&point[i].t,&point[i].x,&point[i].y);
			res=max(res,dist(temp,point[i]));
			temp.x=point[i].x;temp.y=point[i].y;temp.t=point[i].t;
		}
		printf("%.10lf\n",res);
	}
	return 0;
} 

版权声明:本文为博主原创文章,转载请注明出处。

时间: 2024-08-29 23:26:35

HDOJ Osu! 5078【2014鞍山区域赛I题-水】的相关文章

hdu 5078(2014鞍山现场赛 I题)

数据 表示每次到达某个位置的坐标和时间 计算出每对相邻点之间转移的速度(两点间距离距离/相隔时间) 输出最大值 Sample Input252 1 9//t x y3 7 25 9 06 6 37 6 01011 35 6723 2 2929 58 2230 67 6936 56 9362 42 1167 73 2968 19 2172 37 8482 24 98 Sample Output9.219544457354.5893762558 1 # include <iostream> 2 #

hdu5074 Hatsune Miku 2014鞍山现场赛E题 水dp

http://acm.hdu.edu.cn/showproblem.php?pid=5074 Hatsune Miku Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 325    Accepted Submission(s): 243 Problem Description Hatsune Miku is a popular vi

hdu5080:几何+polya计数(鞍山区域赛K题)

/* 鞍山区域赛的K题..当时比赛都没来得及看(反正看了也不会) 学了polya定理之后就赶紧跑来补这个题.. 由于几何比较烂写了又丑又长的代码,还debug了很久.. 比较感动的是竟然1Y了.. */ 题目大意: 给定一些点,某些点上有边,问用k种颜色染色的等价类有多少种 思路: 由于坐标是整数..只有可能旋转90,180,270才能得到置换 且图形必须为中心对称图形 先用几何方法找出对称中心 然后旋转,找是否出现置换... 由于点数只有50,几何预处理这一部分可以很暴力无脑的写..各种判断相

HDOJ Galaxy 5073【2014年鞍山区域赛D题-方差】

Galaxy Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 2800    Accepted Submission(s): 684 Special Judge Problem Description Good news for us: to release the financial pressure, the governmen

hdu 5078 2014鞍山现场赛 水题

http://acm.hdu.edu.cn/showproblem.php?pid=5078 现场最水的一道题 连排序都不用,因为说了ti<ti+1 //#pragma comment(linker, "/STACK:102400000,102400000") #include <cstdio> #include <cstring> #include <algorithm> #include <string> #include &l

【组队训练】2014鞍山区域赛

三题,排名98,铜尾…… 说实话,这样下去真的很害怕,感觉每次都是铜尾阿= = 等正式比赛时一点失误不就tm又铁了嘛.... 刚开始很多人过I题,zr看了下直接写的.1A 然后部分人过了E,我看了下,水dp,随便敲了下,1A #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N = 105;

hdu5072 Coprime 2014鞍山现场赛C题 计数+容斥

http://acm.hdu.edu.cn/showproblem.php?pid=5072 Coprime Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 354    Accepted Submission(s): 154 Problem Description There are n people standing in a

hdu5073 2014鞍山现场赛D题

http://acm.hdu.edu.cn/showproblem.php?pid=5073 Galaxy Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 1421    Accepted Submission(s): 324 Special Judge Problem Description Good news for us: t

ACM学习历程——ZOJ 3829 Known Notation (2014牡丹江区域赛K题)(策略,栈)

Description Do you know reverse Polish notation (RPN)? It is a known notation in the area of mathematics and computer science. It is also known as postfix notation since every operator in an expression follows all of its operands. Bob is a student in