【Atcoder D - Circumferences】并查集
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; public class Main {
static int[] rank;
static int[] parent; public static void init(int n) {
rank = new int[n];
parent = new int[n];
for (int i = 0; i < n; i++) {
rank[i] = 1;
parent[i] = i;
}
} public static int find(int x) {
if (parent[x] == x) {
return x;
}
return find(parent[x]);
} public static void union(int x,int y){
int rx = find(x);
int ry = find(y); if( rx == ry){
return;
}
if( rank[rx] >= rank[ry]){
rank[rx] += rank[ry];
parent[ry] = rx;
}else{
rank[ry] += rank[rx];
parent[rx] = ry;
} } public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
long sx, sy, tx, ty;
int n = Integer.valueOf(br.readLine());
String[] words = br.readLine().split("\\s+");
sx = Long.valueOf(words[0]);
sy = Long.valueOf(words[1]);
tx = Long.valueOf(words[2]);
ty = Long.valueOf(words[3]);
long[][] circles = new long[n][3];
for (int i = 0; i < n; i++) {
words = br.readLine().split("\\s+");
long x = Long.valueOf(words[0]);
long y = Long.valueOf(words[1]);
long r = Long.valueOf(words[2]);
circles[i][0] = x;
circles[i][1] = y;
circles[i][2] = r;
} init(n); for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
long[] arr = circles[i];
long[] arr2 = circles[j]; long distance = (arr[0] - arr2[0]) * (arr[0] - arr2[0]) + (arr[1] - arr2[1]) * (arr[1] - arr2[1]);
long dis2 = (arr[2] + arr2[2]) * (arr[2] + arr2[2]);
long dis3 = (arr[2] - arr2[2]) * (arr[2] - arr2[2]);
if( !(distance > dis2) && !(distance < dis3) ){
union(i,j);
}
}
}
//查找在哪个圆上
int srcIndex = 0;
int dstIndex = 0;
for(int i=0;i<circles.length;i++){
long[] arr = circles[i];
long x = arr[0];
long y = arr[1];
long r = arr[2]; if( ( (sx-x)*(sx-x) + (sy-y)*(sy-y)) == r*r){
srcIndex = i;
}
if( ( (tx-x)*(tx-x) + (ty-y)*(ty-y)) == r*r){
dstIndex = i;
}
}
//
if( find(srcIndex) == find(dstIndex)){
System.out.println("Yes");
}else{
System.out.println("No");
} br.close();
} }
【Atcoder D - Circumferences】并查集的更多相关文章
- AtCoder Beginner Contest 049 & ARC065 連結 / Connectivity AtCoder - 2159 (并查集)
Problem Statement There are N cities. There are also K roads and L railways, extending between the c ...
- AtCoder Beginner Contest 120 D - Decayed Bridges(并查集)
题目链接:https://atcoder.jp/contests/abc120/tasks/abc120_d 题意 先给m条边,然后按顺序慢慢删掉边,求每一次删掉之后有多少对(i,j)不连通(我应该解 ...
- AtCoder NIKKEI Programming Contest 2019 E. Weights on Vertices and Edges (并查集)
题目链接:https://atcoder.jp/contests/nikkei2019-qual/tasks/nikkei2019_qual_e 题意:给出一个 n 个点 m 条边的无向图,每个点和每 ...
- AtCoder Beginner Contest 247 F - Cards // dp + 并查集
原题链接:F - Cards (atcoder.jp) 题意: 给定N张牌,每张牌正反面各有一个数,所有牌的正面.反面分别构成大小为N的排列P,Q. 求有多少种摆放方式,使得N张牌朝上的数字构成一个1 ...
- XJOI 3578 排列交换/AtCoder beginner contest 097D equal (并查集)
题目描述: 你有一个1到N的排列P1,P2,P3...PN,还有M对数(x1,y1),(x2,y2),....,(xM,yM),现在你可以选取任意对数,每对数可以选取任意次,然后对选择的某对数(xi, ...
- Atcoder 2159 連結 / Connectivity(并查集+map乱搞)
問題文N 個の都市があり.K 本の道路と L 本の鉄道が都市の間に伸びています. i 番目の道路は pi 番目と qi 番目の都市を双方向に結び. i 番目の鉄道は ri 番目と si 番目の都市を双 ...
- 【并查集】【set】AtCoder - 2159 - 連結 / Connectivity
Problem Statement There are N cities. There are also K roads and L railways, extending between the c ...
- AtCoder Beginner Contest 177 D - Friends (并查集)
题意:有\(n\)个人,给你\(m\)对朋友关系,朋友的朋友也是朋友,现在你想要将他们拆散放到不同的集合中,且每个集合中的人没有任何一对朋友关系,问最少需要多少集合. 题解:首先用并查集将朋友关系维护 ...
- D - 連結 / Connectivity 并查集
http://abc049.contest.atcoder.jp/tasks/arc065_b 一开始做这题的时候,就直接蒙逼了,n是2e5,如果真的要算出每一个节点u能否到达任意一个节点i,这不是f ...
- BZOJ 4199: [Noi2015]品酒大会 [后缀数组 带权并查集]
4199: [Noi2015]品酒大会 UOJ:http://uoj.ac/problem/131 一年一度的“幻影阁夏日品酒大会”隆重开幕了.大会包含品尝和趣味挑战两个环节,分别向优胜者颁发“首席品 ...
随机推荐
- spring boot jar混淆加密
最近在做一个智能床垫的机构版项目,客户要求部署到客户那边要做代码混淆防止代码被反编译. 一:在需要加密的jar的pom.xml文件添加依赖 <!-- 设置 jitpack.io 仓库 --> ...
- 单片机 IAP 功能进阶开发篇之BOOT升级(一)
引言 目的 主要介绍单片机 IAP 开发的设计思路,如何不使用下载烧录器的方式对单片机的程序进行升级,升级区域包括 bootloader 和用户程序的升级,升级方式有 UASRT 通信.CAN 通信和 ...
- Hive-mapjoin详解(mapjoin原理)
笼统的说,Hive中的Join可分为Common Join(Reduce阶段完成join)和Map Join(Map阶段完成join).本文简单介绍一下两种join的原理和机制. 一 .Common ...
- Ubuntu 20.04 出现 SSL_connect: error:1425F102 .. unsupported protocol问题的解决
在安装完Ubuntu 20.04后, 这个问题影响了好几个软件, 包括MySQL Workbench, Openfortigui等等, 出现的错误都是 ERROR: SSL_connect: erro ...
- Jsp+Servlet实现文件上传下载(一)--文件上传
文件上传和下载功能是Java Web必备技能,很实用. 本文使用的是Apache下的著名的文件上传组件 org.apache.commons.fileupload 实现 下面结合最近看到的一些资料以及 ...
- Golang从入门到跑路-从基础到微服务学习路线图
收录的awesome-go项目,学习基础系列,go项目实战,go源码分析,go开发者成长路线图等等,把他们收集起来学习. 地址:https://github.com/jiujuan/go-collec ...
- 安装Standalone模式HBase
所谓Standalone模式HBase,就是只启动一个JVM进程,在这个进程中同时启动了多个后台角色,如:HMaster,单个HRegionServer,以及ZooKeeper服务. 下载安装 最新版 ...
- React 中 Ref 引用
不要因为别人的评价而改变自己的想法,因为你的生活是你自己的. 1. React 中 Ref 的应用 1.1 给标签设置 ref 给标签设置 ref,ref="username", ...
- 【Azure 应用服务】在创建App Service时,遇见“No available instances to satisfy this request. App Service is attempting to increase capacity.”错误
问题描述 在创建新的App Service,遇见了资源不满足当前需求的提示.详细消息为: "Code": "Conflict","Message&qu ...
- 【Azure 应用服务】收集App Service 关于Availability Zone, Health check 以及 Traffic Manager的文档,并了解高可用(HA)和灾备(DR)
问题描述 收集App Service 关于Availability Zone, Health check 以及 Traffic Manager的文档,并了解高可用(HA)和灾备(DR)的具体办法 问题 ...