7F - 无限的路
甜甜的好朋友蜜蜜发现上面的图还是有点规则的,于是他问甜甜:在你画的图中,我给你两个点,请你算一算连接两点的折线长度(即沿折线走的路线长度)吧。
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<math.h> double length(int x1, int y1, int x2, int y2)
{
double s=;
int t;
if(x1>x2)
{
t=x1; x1=x2; x2=t;
t=y1; y1=y2; y2=t;
}
if(x1==x2&&y1==y2) return s;
else
{
if(x1==&&y1==)
{ s++; y1++; }
if(x1==&&y2==&&(y1-x2)==)
{
s+=sqrt(y1*y1+x2*x2);
return s;
}
else if(x2-x1==y1-y2)
{
s+=(x2-x1)*sqrt(2.0);
return s;
}
else
{
if(x1==)
{
s+=sqrt((y1-)*(y1-)+y1*y1);
x1=y1-; y1=;
}
else
{
if(x1+y1>x2+y2)
{
s+=x1*sqrt(2.0);
y1+=x1; x1=;
}
else
{
s+=x2*sqrt(2.0);
y2+=x2; x2=;
}
}
return s+length(x1,y1, x2,y2);
}
}
} int main()
{
int n, x1,y1, x2,y2;
double s;
scanf("%d", &n);
while(n--)
{
scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
s=length(x1,y1, x2,y2);
printf("%.3f\n", s);
}
return ;
}
WA
// 分别求两点到原点的距离,结果为其差的绝对值
#include<stdio.h>
#include<math.h> double length(int x, int y)
{
double s=;
int i;
for(i=;i<x+y;i++)
s+=i*sqrt(2.0);
s+=x*sqrt(2.0); // 斜率为-1的路径长度
for(i=;i<x+y;i++)
s+=sqrt(i*i+(i+)*(i+)); // 斜率非-1或斜率不存在的路径长度
return s;
} int main()
{
int n, x1,y1, x2,y2;
double s1, s2;
scanf("%d", &n);
while(n--)
{
scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
s1=length(x1,y1); s2=length(x2,y2);
printf("%.3f\n", fabs(s1-s2));
}
return ;
}
AC
7F - 无限的路的更多相关文章
- 无限的路_hdu_2073(AC).java
无限的路 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- JSU省赛队员选拔赛个人赛1(Coin Change、Fibbonacci Number、Max Num、单词数、无限的路、叠筐)
JSU省赛队员选拔赛个人赛1 一.题目概述: A.Coin Change(暴力求解.动态规划) B.Fibbonacci Number(递推求解) C.Max Num(排序.比较) D.单词数 ...
- HDOJ 2073 无限的路
Problem Description 甜甜从小就喜欢画图画,最近他买了一支智能画笔,由于刚刚接触,所以甜甜只会用它来画直线,于是他就在平面直角坐标系中画出如下的图形: 甜甜的好朋友蜜蜜发现上面的图还 ...
- HDU 2073 无限的路
Problem Description 甜甜从小就喜欢画图画,最近他买了一支智能画笔,由于刚刚接触,所以甜甜只会用它来画直线,于是他就在平面直角坐标系中画出如下的图形: 甜甜的好朋友蜜蜜发现上面的图还 ...
- HDU 2073 无限的路 (模拟)
题目链接 Problem Description 甜甜从小就喜欢画图画,最近他买了一支智能画笔,由于刚刚接触,所以甜甜只会用它来画直线,于是他就在平面直角坐标系中画出如下的图形: 甜甜的好朋友蜜蜜发现 ...
- 解题报告:hdu 2073 无限的路
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2073 Problem Description 甜甜从小就喜欢画图画,最近他买了一支智能画笔,由于刚刚接 ...
- hdoj--2073--无限的路(数学规律)
无限的路 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...
- 杭电ACM分类
杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...
- 计算机学院2014年“新生杯”ACM程序设计大赛
1440: 棋盘摆车问题 对于输入n,k: 1.当n<k时,无满足的摆法 2.否则 第一个车可以排n*n个位置(即整个棋盘),第二个可排(n-1)*(n-1)个位置,…… 正如排列组合一样,车与 ...
随机推荐
- net.sf.json
JSONObject package com.itlwc.test; import net.sf.json.JSONArray; import net.sf.json.JSONO ...
- highcharts折线图的简单使用
第一步:官网下载压缩包https://www.hcharts.cn/download 第二步:HTML中引入highcharts.js <!DOCTYPE html> <html&g ...
- iOS字符串自动计算文本的宽和高
根据字符串如何自动计算出这些字符所占的宽和高: 首先,需要知道要显示的字体的样式,因为不同大小的字体所占据的空间大小不一样. 其次,要设置限制范围,例如一串字符可以显示成一行(较宽),也可以显示成多行 ...
- leetcode每日刷题计划-简单篇day7
还没有背单词,头晕脑胀 Num 66 加一 Plus One 注意就是进位的时候最后一位,为了省两句代码,那几个语句顺序写反覆盖的乱七八糟 vector头部插入(a.begin(),被插入的数) 如果 ...
- JUnit4源码学习笔记
先上一个在Spring-test下运行的调用栈 自底向上: JUnitStarter IDEA对JUnit的支持,调用JUnitCore.run(Runner),将注解@RunWith指定的Runne ...
- 使用 nodeJs 开发微信公众号(设置自动回复消息)
微信向第三方服务器发送请求时会降 signature .timestamp. nonce . openid(用户标识),发送内容会以 xml 的形式附加在请求中 回复消息前提我们得拿到用户id , 用 ...
- mac安装linux双系统的吐槽
[First day] 尝试安装mac - linux 双系统 首先,尝试的是ubuntu16.06版本,要把双系统安装至电脑硬盘512G SSD中, *** 分盘 1.1 打开实用工具中的磁盘管理工 ...
- Vue note 2
1.异步加载组件 一般单页面的缺点是首屏加载比较慢,因为首屏会把所有所需静态资源全部加载,对于中大型项目来说这样可能不是很合理.初步采用异步组件的方式,配合webpack,组件内部可以采用: comp ...
- Install Oracle Tuxedo in silent mode
在我的工作中,Tuxedo通常是和PeopleSoft一起出现的. 下面总结不同版本Tuxedo静默(silent)安装的方法,方便提高我们部署系统的效率. Tuxedo 12.1.3 1. repo ...
- 移动端响应式布局--你不知道的CSS3.0媒体查询,解决rem部分情况下无法适配的场景
媒体查询作为响应式布局的方法之一,实际项目中用途也很广.但是你真的知道怎么用吗? 例如,下面匹配 iphone6/7/8 屏幕 @media screen and (max-width: 375px) ...