51nod 1298 圆与三角形
第1行:一个数T,表示输入的测试数量(1 <= T <= 10000),之后每4行用来描述一组测试数据。 4-1:三个数,前两个数为圆心的坐标xc, yc,第3个数为圆的半径R。(-3000 <= xc, yc <= 3000, 1 <= R <= 3000) 4-2:2个数,三角形第1个点的坐标。 4-3:2个数,三角形第2个点的坐标。 4-4:2个数,三角形第3个点的坐标。(-3000 <= xi, yi <= 3000)
共T行,对于每组输入数据,相交输出"Yes",否则输出"No"。
2 0 0 10 10 0 15 0 15 5 0 0 10 0 0 5 0 5 5
Yes No
点和线段的关系大致可以有下面几
#include <iostream>
#include <string>
#include <cstring>
#include <stdio.h>
#include <cmath>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int main()
{int t;cin>>t;while(t--){double a[3],x[4],y[4];int i;for(i=0;i<3;i++) cin>>a[i];for(i=0;i<3;i++) cin>>x[i]>>y[i];double max1=0,max2=0,sum;double r=a[2];for(i=0;i<3;i++){sum=(x[i]-a[0])*(x[i]-a[0])+(y[i]-a[1])*(y[i]-a[1]);sum=sqrt(sum);if(sum>=a[2]) max1=1;if(sum<=a[2]) max2=1;//cout<<sum<<" "<<a[2]<<' '<<max1<<' '<<max2<<endl; <strong>//这个是用来判断点是在圆内还是外</strong>}int z=0;if(max1==1&&max2==1) z=1;else if(max1==1&&max2==0) //这一步证明三个点都在圆外{double a1,b1,c1;double s;for(i=0;i<3;i++){a1=(x[i]-a[0])*(x[i]-a[0])+(y[i]-a[1])*(y[i]-a[1]); <em>//计算点到圆心的距离,三条边构成三角形</em>b1=(x[(i+1)%3]-a[0])*(x[(i+1)%3]-a[0])+(y[(i+1)%3]-a[1])*(y[(i+1)%3]-a[1]);c1=(x[i]-x[(i+1)%3])*(x[i]-x[(i+1)%3])+(y[i]-y[(i+1)%3])*(y[i]-y[(i+1)%3]);if(a1+c1>=b1&&b1+c1>=a1) <strong>//判断是否能构成垂线</strong>{//cout<<a1<<' '<<b1<<' '<<c1<<endl;s=c1*a1-((c1+a1-b1)/2*(c1+a1-b1)/2); //cout<<s<<endl;<strong> //我大中华的秦九韶公式</strong>if(sqrt(s/c1)<=a[2]) z=1; <strong>//找到垂线的长度。</strong>//cout<<i<<" "<<sqrt(s/c1)<<' '<<z<<' '<<a[2]<<' '<<s-a[2]<<endl;}}}if(z) cout<<"Yes";else cout<<"No";//cout<<' '<<t;cout<<endl;}return 0;
}
51nod 1298 圆与三角形相关推荐
- 51Nod 1298 圆与三角形
题目链接: 51Nod 1298 圆与三角形 题目描述: 给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交.相交输出"Yes",否则输出"No". ...
- 51Nod 1298 圆与三角形相交 计算几何
51Nod-1298-圆与三角形 给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交.相交输出"Yes",否则输出"No".(三角形的面积大于0). ...
- 51nod 1298:圆与三角形(计算几何)
题目链接 判断圆和三角形是否相交 可以转化为 判断三条线段是否和圆相交 #include<iostream> #include<cstdio> #include< ...
- (图论)51NOD 1298 圆与三角形
给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交.相交输出"Yes",否则输出"No".(三角形的面积大于0). 输入 第1行:一个数T,表示输入 ...
- 51nod 1298 圆与三角形(几何知识)
Description 给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交.相交输出"Yes",否则输出"No".(三角形的面积大于0). Inpu ...
- 51nod 1298
1298 圆与三角形 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出圆的圆心和半径,以及三角形的三个顶点,问圆同三 ...
- 51Nod-1298 圆与三角形
1298 圆与三角形 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出圆的圆心和半径,以及三角形的三个顶点,问圆同三 ...
- 51Nod 圆与三角形
给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交.相交输出"Yes",否则输出"No".(三角形的面积大于0). Input 第1行:一个数T,表 ...
- 51Nod - 1298(点到线段的距离)
链接:51Nod - 1298 题意: 给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交.相交输出"Yes",否则输出"No".(三角形的面积大于 ...
最新文章
- 计算机服务器和数据库的关系,服务器到底是什么?和电脑又有什么区别?
- Webex 如何在在线会议领域保持优势?
- nltk.download(“stopwords“)
- Python Ctypes结构体指针处理(函数参数,函数返回)
- python prettytable_让python的print变得更好看——prettytable和colorama
- 95-290-360-源码-内存管理-Buffer-ByteBufferPool简介
- Conda 环境常用碎笔记
- MySQL5.7.19解压版配置
- Kotlin中正则表达式分析
- 用得上的商学课-老路
- TikTok广告投放必备指南
- Java并发57:Akka Actors并发框架浅谈及入门示例
- python 情感分析实例_基于Python的情感分析案例
- 关于使用selenium工具调用Firefox浏览器登录淘宝、京东web端的试验
- 悟空crm php 部署,悟空crm开源版本环境搭建
- #sora#笔记——工作流
- 如何批量增加视频的音量(ffmpeg)
- 全志 H6 Orange Pi Lite 2 Android 7.0 OTG配置
- Project 学习使用
- 正益移动:不仅仅送给你软件生产线