列表

详情


NC213861. 圆

描述

scimoon 做不出题,随手在纸上画了两个正圆

第一个圆圆心为 (x1,y1) ,半径为 r1

第二个圆圆心为 (x2,y2) ,半径为 r2

这两个圆的圆弧有没有交呢

输入描述

第一行一个正整数 T,表示数据组数

接下来 T 行,每行六个整数,分别为 x1,y1,r1,x2,y2,r2 ,意义如题中描述一致

输出描述

输出共T行

对于每组数据,若有交则输出 YES,否则输出 NO

示例1

输入:

1
1 1 1 1 2 1

输出:

YES

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++(clang++11) 解法, 执行用时: 8ms, 内存消耗: 376K, 提交时间: 2020-11-19 14:01:29

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		double a,b,c,d,e,f;
		cin>>a>>b>>c>>d>>e>>f;
		double x=sqrt(pow((d-a),2)+pow((e-b),2));
		if(x>c+f||abs(c-f)>x)
		printf("NO\n");
		else
		printf("YES\n");
	}
}

Python3 解法, 执行用时: 47ms, 内存消耗: 4596K, 提交时间: 2022-01-12 21:24:18

for _ in range(int(input())):
    x1,y1,r1,x2,y2,r2=map(int,input().split())
    r_r=pow(((x2-x1)**2+(y2-y1)**2),0.5)
    print("YES"if r_r<=r1+r2 and r_r>=abs(r1-r2)else "NO")

上一题