当前位置: 代码迷 >> C语言 >> [求助]无限的路
  详细解决方案

[求助]无限的路

热度:216   发布时间:2007-02-01 05:53:37.0
[求助]无限的路

http://acm.hdu.edu.cn/showproblem.php?pid=2073


自己做了一下,我自己找不到是那里错了,大家看一下这题有什么好方法吗?
我把自己的代码贴在了下面!
#include <stdio.h>
#include <math.h>

int main(void)
{
long n, x1, x2, y1, y2, i, j, he1, he2, temp, temp1, temp2;
double sum;

scanf("%ld", &n);
for(i = 0;i < n;i ++)
{
sum = 0;
scanf("%ld%ld%ld%ld", &x1, &y1, &x2, &y2);
he1 = x1 + y1;
he2 = x2 + y2;

if(he1 > he2)
{
temp = he1;
he1 = he2;
he2 = temp;

temp1 = x1;
x1 = x2;
x2 = temp1;

temp2 = y1;
y1 = y2;
y2 = temp2;
}

for(j = he2;j > he1;j --)
{
sum += sqrt(j * j + (j - 1) * (j - 1));
}
if(he1 != he2)
sum += ((he1 - x1 + x2) * sqrt(2));
else
sum += (fabs(x1 - x2) * sqrt(2));
printf("%.3lf\n", sum);

}
return 0;
}

[此贴子已经被作者于2007-2-1 6:06:43编辑过]


----------------解决方案--------------------------------------------------------
99 99 9 9
就是这组测试数据不对.
----------------解决方案--------------------------------------------------------
用勾股定理求
----------------解决方案--------------------------------------------------------
这个题不仅算相邻两点之间的折线长啊,还有间隔点的情况啊,这个时候用勾股定理很麻烦啊,要算很多次的。。。
----------------解决方案--------------------------------------------------------
我的思路是这样的:在斜线上的横坐标和纵坐标之和是相等的(比如(0,1)和(1,0)),在给定的两点(比如(0,0)和(0,1))算其和,判断这两条斜线之间有多少条斜线,用勾股定理,其他的就算算一共有多少段,其长度都是根号2,两部分长度加在一起就是总的长度!
----------------解决方案--------------------------------------------------------
红色字体的地方错了!现在过了!
[CODE]

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

int main(void)
{
int n, x1, x2, y1, y2, i, j, he1, he2, temp, temp1, temp2;
double sum;

scanf("%d", &n);
for(i = 0;i < n;i ++)
{
sum = 0;
scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
he1 = x1 + y1;
he2 = x2 + y2;

if(he1 > he2)
{
temp = he1;
he1 = he2;
he2 = temp;

temp1 = x1;
x1 = x2;
x2 = temp1;

temp2 = y1;
y1 = y2;
y2 = temp2;
}

for(j = he2;j > he1;j --)
{
sum += sqrt(j * j + (j - 1) * (j - 1));
}
if(he1 != he2)
sum += ((he1 - x1 + x2 + (he2 - he1 - 1) * (he1 + 1 + he2 -1) / 2) * sqrt(2));
else
sum += (fabs(x1 - x2) * sqrt(2));
printf("%.3lf\n", sum);

}

return 0;
}


[/CODE]
----------------解决方案--------------------------------------------------------
  相关解决方案