Gym-101915J The Volcano Eruption 计算几何
题意:给你一个矩阵,然后有很多的圆,这些圆可能相交着,一个或者几个就导致这个矩形被分割开了,就是从最下面的边到上面的边,连线被这些圆阻隔了,每一堆圆当做一个阻碍,问一共有几个阻碍
题解:看起来好难做啊!~!,我怎么知道一堆圆就把矩阵一横着的局域都占完了
哎然后猛然发现,相交的2个圆,是不是可以连边,
然后从对于每个联通的子图,是不是最左边的圆上有点超过了矩形最左边,同时右边也是,就隔开了!
所以建图(实际这个图也不用建出来),dfs一下就行了
注意一下精度的问题,所有比大小相关的最后都带eps
#include<bits/stdc++.h>
using namespace std;
#define N 1005
#define eps 1e-6
double w,l,x[N],y[N],r[N],ll,rr;
int cnt,T,n,vis[N],ok=;
double sqr(double x){return x*x;}
int check(int a,int b)
{
return ( (sqr(x[a]-x[b])+sqr(y[a]-y[b]))<sqr(r[a]+r[b]+eps) );
}
void dfs(int u)
{
if (vis[u]) return ;
vis[u]=;
if (x[u]+r[u]>=w) ok=;
for (int v=;v<n;v++)
{
if (v==u) continue;
if (!vis[v] && check(u,v)) dfs(v);
}
return ;
}
int main()
{
scanf("%d",&T);
while (T--)
{
scanf("%d%lf%lf",&n,&w,&l);
cnt=;
memset(vis,,sizeof(vis));
for (int i=;i<=n;i++) scanf("%lf%lf%lf",&x[i],&y[i],&r[i]);
for (int i=;i<=n;i++)
if (x[i]-r[i]<=eps)
{
ok=;
if (!vis[i]) dfs(i);
if (ok==) cnt++; }
printf("%d\n",cnt);
}
}
Gym-101915J The Volcano Eruption 计算几何的更多相关文章
- J. The Volcano Eruption(圆相交+并查集)
题目链接:https://codeforces.com/gym/101915/problem/J 思路:将所有相交的圆用并查集维护看做一个整体,然后枚举每个整体的左边界和右边界,判断能不能同时覆盖整个 ...
- Codeforces Gym 100523K K - Cross Spider 计算几何,判断是否n点共面
K - Cross SpiderTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/v ...
- Codeforces Gym 101505C : Cable Connection (计算几何)
题目链接 题意:给出第一象限的N个点,存在一直线x/a+y/b=1(a>0,y>0)使得所有点都在这条直线下面,求 min{sqrt(a^2+b^2)} 显然,这样的直线必然经过这N个点中 ...
- Gym 101915
Gym - 101915A Printing Books 题意:有一本书,从第X页开始,一共用了n位数字,求此书一共多少页.99就是两位数字,100就是三位数字. 思路:直接模拟即可,我用了一个hi ...
- Gym 100952J&&2015 HIAST Collegiate Programming Contest J. Polygons Intersection【计算几何求解两个凸多边形的相交面积板子题】
J. Polygons Intersection time limit per test:2 seconds memory limit per test:64 megabytes input:stan ...
- Gym 101606L - Lounge Lizards - [计算几何+LIS]
题目链接:https://codeforces.com/gym/101606/problem/L 题解: 在同一条线上的所有蜥蜴,他们的斜率都是相通的,换句话说可以直接通过斜率将蜥蜴分组. 每一组即代 ...
- 【计算几何】【二分图判定】Gym - 101485C - Cleaning Pipes
题意:有n个水井,每个水井发出一些管线(都是线段),然后每条管线上最多只有一个水井.所有从不同的水井发出的管线的相交点都是清洁点(不存在清洁点是大于两条管线点的交点).你需要在某些管线上放出一些机器人 ...
- 【计算几何】【分类讨论】Gym - 101173C - Convex Contour
注意等边三角形的上顶点是卡不到边界上的. 于是整个凸包分成三部分:左边的连续的三角形.中间的.右边的连续的三角形. 套个计算几何板子求个三角形顶点到圆的切线.三角形顶点到正方形左上角距离啥的就行了,分 ...
- Gym 101055A 计算几何,暴力
http://codeforces.com/gym/101055/problem/A 题目:给定一些三维空间的点,要你找一个平面,能覆盖尽量多的点,只要求输出点数即可.n<=50 因为数据量小, ...
随机推荐
- SSIS SQL Server配置自动作业
目录: 一. 用SSMS配置作业,自助调度: 二.用SSMS调SSIS包: 一. 用SSMS配置作业,自助调度: 为验证数据,先创建一个表: CREATE TABLE test_table (id I ...
- jQuery的基本概念与高级编程
年创建的一个年月面世的1.5.2版本.作为一个JavaScript库,jQuery极大程度上解决了浏览器的兼容性问题,能够在IE 6.0 +.FF 2.0 +.Safari 3.0 +.Opera 9 ...
- mvc重定向
出处 : https://www.cnblogs.com/lgxlsm/p/5441149.html .重定向方法:Redirect / RedirectToAction / RedirectToRo ...
- 洛谷P1996 约瑟夫问题【队列】
题目背景 约瑟夫是一个无聊的人!!! 题目描述 n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,--依次类推,直到所有的人都出 ...
- linux 中,mysql数据库备份操作
1.新建一个sh脚本(可以先建一个txt文本,然后改为sh文件). 代码如下: #!/bin/bash #设置mysql备份目录 folder=/**/** cd $folder day=`date ...
- lucene_05_solr配置
什么是solr Solr.是Apache 下的一个顶级开源项目,采用Java 开发,它是基于Lucene 的全文搜索服务器.Solr 提供了比Lucene 更为丰富的查询语言,同时实现了可配置.可扩展 ...
- fzu 2173 floyd+矩阵快速幂
#include<stdio.h> #define inf 1000000000000000 #define N 100 long long tmp[N][N],ma[N][N]; int ...
- spring mvc接收http参数
1.http协议携带参数,无外乎两个三个存储地点:1.url上 ,2.header里 3.body里. 2.get请求是没有body的,数据全都放在url上,以?xx&xxx形式.注:get请 ...
- AC自己主动机模板(数组实现版)
BY 九野 做了一道题,用我的那种写法华丽丽的超时了.,无奈学一学数组实现的 #include<stdio.h> #include<string.h> #include< ...
- apple 团队电话
back 苹果电话:400 670 18552 这个是国内能打通的