最长线段
Posted WeiAR
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最长线段相关的知识,希望对你有一定的参考价值。
Problem 1 :最长线段
(chord.pas/chord.in/chord.out)
【问题描述】
给定两个圆各自的圆心坐标和半径长。过其中一个交点作直线,该直线与圆的另外两个交点分别为A、B。线段AB最长是多少?
【输入数据】
第一行有三个用空格隔开的整数x1,y1,r1,依次表示第一个圆的圆心坐标和半径;
第二行有三个用空格隔开的整数x2,y2,r2,依次表示第二个圆的圆心坐标和半径;
输入数据保证两圆相交。
【输出数据】
输出AB的最大长度。你的输出需要保留6位小数。
【输入样例】
5 4 4
-3 2 5
【输出样例】
16.492423
【数据规模】
对于30%的数据,x1=y1;
对于50%的数据,r1=r2;
对于100%的数据,输入数据在integer范围内。
当场没做出来,当时觉得正解是最小的,,也没很想,画个图就明白了.
#include<iostream> #include<cmath> using namespace std; int x,y,X,Y; int main() { freopen("chord.in","r",stdin); freopen("chord.out","w",stdout); int t; cin>>x>>y>>t; cin>>X>>Y>>t; double ans=sqrt((x-X)*(x-X)+(y-Y)*(y-Y)); printf("%.6f",2*ans); return 0; }
以上是关于最长线段的主要内容,如果未能解决你的问题,请参考以下文章
PKU 3667 Hotel (线段树,区间合并,最长连续区间)
在一个无序整数数组中,找出连续增长片段最长的一段, 增长步长是1。Example: [3,2,4,5,6,1,9], 最长的是[4,5,6]