HDU2073 无限的路

无限的路

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

Total Submission(s): 6123    Accepted Submission(s): 3102

Problem Description

甜甜从小就喜欢画图画,最近他买了一支智能画笔,由于刚刚接触,所以甜甜只会用它来画直线,于是他就在平面直角坐标系中画出如下的图形:

甜甜的好朋友蜜蜜发现上面的图还是有点规则的,于是他问甜甜:在你画的图中,我给你两个点,请你算一算连接两点的折线长度(即沿折线走的路线长度)吧。

Input

第一个数是正整数N(≤100)。代表数据的组数。

每组数据由四个非负整数组成x1,y1,x2,y2;所有的数都不会大于100。

Output

对于每组数据,输出两点(x1,y1),(x2,y2)之间的折线距离。注意输出结果精确到小数点后3位。

Sample Input

5
0 0 0 1
0 0 1 0
2 3 3 1
99 99 9 9
5 5 5 5

Sample Output

1.000
2.414
10.646
54985.047
0.000
#include <stdio.h>
#include <string.h>
#include <math.h>

double cnt_b2t[210];

double f(int x, int y) {
	int a = x + y;
	if (!a) return 0.0;
	return cnt_b2t[a-1] + (a * (a - 1) / 2 + x) * sqrt(2.0);
}

int main() {
	freopen("stdin.txt", "r", stdin);
	int T, x1, y1, x2, y2, i;
	for (i = cnt_b2t[0] = 1; i <= 200; ++i) {
		cnt_b2t[i] = cnt_b2t[i-1] + sqrt(i*i + (i+1)*(i+1));
	}
	scanf("%d", &T);
	while (T--) {
		scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
		printf("%.3lf\n", fabs(f(x1, y1) - f(x2, y2)));
	}
	return 0;
}
时间: 2024-10-27 00:34:21

HDU2073 无限的路的相关文章

HDU2073 无限的路【水题】【递推】

无限的路 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 6113    Accepted Submission(s): 3097 Problem Description 甜甜从小就喜欢画图画,最近他买了一支智能画笔,由于刚刚接触,所以甜甜只会用它来画直线,于是他就在平面直角坐标系中画出如下的图形: 甜甜的好朋友蜜蜜发现上面的图还是有点

HDU-2073 无限的路

Description 甜甜从小就喜欢画图画,最近他买了一支智能画笔,由于刚刚接触,所以甜甜只会用它来画直线,于是他就在平面直角坐标系中画出如下的图形: 甜甜的好朋友蜜蜜发现上面的图还是有点规则的,于是他问甜甜:在你画的图中,我给你两个点,请你算一算连接两点的折线长度(即沿折线走的路线长度)吧. Input 第一个数是正整数N(≤100).代表数据的组数.每组数据由四个非负整数组成x1,y1,x2,y2:所有的数都不会大于100. Output 对于每组数据,输出两点(x1,y1),(x2,y2

无限的路

Description 甜甜从小就喜欢画图画,最近他买了一支智能画笔,由于刚刚接触,所以甜甜只会用它来画直线,于是他就在平面直角坐标系中画出如下的图形:       甜甜的好朋友蜜蜜发现上面的图还是有点规则的,于是他问甜甜:在你画的图中,我给你两个点,请你算一算连接两点的折线长度(即沿折线走的路线长度)吧. Input 第一个数是正整数N(≤100).代表数据的组数.        每组数据由四个非负整数组成x1,y1,x2,y2:所有的数都不会大于100. Output 对于每组数据,输出两点

【递推】【HDU 2073】无限的路 (找规律)

链接:http://acm.hdu.edu.cn/showproblem.php?pid=2073 意外之喜  还挺不错的一道题目 仔细观察不难发现   其实整个路线只有这两种线(绿色跟红色) 并且在移动过程中[x,y]的改变(红线部分)总是遵循这两种规律[x+1,y-1]或者[x-1,y+1],设x+y=z 在同一条红线中z的值是不变的 既然如此 我们不如直接用x+y来计算红线部分的总值,忽略x与y的具体数值 我们定义一个数组p1[z]来保存红线的前缀和 计算公式也很容易看出来p1[0] =

7F - 无限的路

甜甜从小就喜欢画图画,最近他买了一支智能画笔,由于刚刚接触,所以甜甜只会用它来画直线,于是他就在平面直角坐标系中画出如下的图形: 甜甜的好朋友蜜蜜发现上面的图还是有点规则的,于是他问甜甜:在你画的图中,我给你两个点,请你算一算连接两点的折线长度(即沿折线走的路线长度)吧. Input 第一个数是正整数N(≤100).代表数据的组数. 每组数据由四个非负整数组成x1,y1,x2,y2:所有的数都不会大于100. Output 对于每组数据,输出两点(x1,y1),(x2,y2)之间的折线距离.注意

hdu2073递推题

无限的路 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7792 Accepted Submission(s): 4027 Problem Description 甜甜从小就喜欢画图画,最近他买了一支智能画笔,由于刚刚接触,所以甜甜只会用它来画直线,于是他就在平面直角坐标系中画出如下的图形: 甜甜的好朋友蜜蜜发现上面的图还是有点规则的,于是他

hdoj 2073--无限的路

无限的路 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7601    Accepted Submission(s): 3913 Problem Description 甜甜从小就喜欢画图画,最近他买了一支智能画笔,由于刚刚接触,所以甜甜只会用它来画直线,于是他就在平面直角坐标系中画出如下的图形: 甜甜的好朋友蜜蜜发现上面的图还是有点规

杭电ACM分类

杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDIATE DECODABILITY

【转】对于杭电OJ题目的分类

[好像博客园不能直接转载,所以我复制过来了..] 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDI