zoukankan      html  css  js  c++  java
  • 福建省赛-- Common Tangents(数学几何)

    Problem B Common Tangents

    Accept: 191    Submit: 608
    Time Limit: 1000 mSec    Memory Limit : 32768 KB

    Problem Description

    Two different circles can have at most four common tangents.

    The picture below is an illustration of two circles with four common tangents.

    Now given the center and radius of two circles, your job is to find how many common tangents between them.

    Input

    The first line contains an integer T, meaning the number of the cases (1 <= T <= 50.).

    For each test case, there is one line contains six integers x1 (−100 ≤ x1 ≤ 100), y1 (−100 ≤ y1 ≤ 100), r1 (0 < r1 ≤ 200), x2 (−100 ≤ x2 ≤ 100), y2 (−100 ≤ y2 ≤ 100), r2 (0 < r2 ≤ 200). Here (x1, y1) and (x2, y2) are the coordinates of the center of the first circle and second circle respectively, r1 is the radius of the first circle and r2 is the radius of the second circle.

    Output

    For each test case, output the corresponding answer in one line.

    If there is infinite number of tangents between the two circles then output -1.

    Sample Input

    3
    10 10 5 20 20 5
    10 10 10 20 20 10
    10 10 5 20 10 5

    Sample Output

    4
    2
    3

    判断两个圆有几条切线!有一点需要注意,两个圆重合的时候输出-1,重合时有无数条切线,水题一枚

    #include<stdio.h>
    #include<math.h>
    #include<algorithm>
    using namespace std;
    int main()
    {
    	int t;
    	scanf("%d",&t);
    	while(t--)
    	{
    		int x1,x2,y1,y2,r1,r2;
    		double s1;
    		scanf("%d%d%d%d%d%d",&x1,&y1,&r1,&x2,&y2,&r2);
    		if(x1==x2&&y1==y2&&r1==r2)
    		printf("-1
    ");
    		else
    		{
    			s1=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); 
    			if(r1+r2<s1)
    			printf("4
    ");
    			else if(r1+r2==s1)
    			printf("3
    ");
    			else if(r1+r2>s1)
    			{
    				if(s1+min(r1,r2)==max(r1,r2))
    				printf("1
    ");
    				else if(s1+min(r1,r2)<max(r1,r2))
    				printf("0
    ");
    				else printf("2
    ");
    			}
    		}
    	}
    	return 0;
    }




  • 相关阅读:
    多线程中static对象
    DPDK l2fwd 浅注
    DPDK编译步骤
    什么是API,SDK和API之间的关系
    linux创建定时任务发送钉钉通知
    python-webdriver中添加cookie,解决添加了图片验证码的问题
    win7下CodeIgniter安装
    XAMPP环境搭建及同类推荐
    Fiddler死活抓不了HTTPS包解决办法
    XSS注入常用语句积累
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273594.html
Copyright © 2011-2022 走看看