当前位置: 首页 > news >正文

EUC 2024 I. Disks

原题链接:Problem - I - Codeforces

题意:有n个圆,可以调整每个圆的半径,要求相切的圆改变后仍然相切,不能有圆相互覆盖,并且调整之后全部圆半径的总和变小。

思路:一个圆的半径增大,那么和这个圆相切的圆的半径就会减小反之相同,二个相切的圆可以理解成二个相连接的点。那么就可以对每一个联通块中的点进行染色法判断,如果判断成功,那么就判断,不同颜色的数量是否相同,如果不相同那么就输出yes。

//冷静,冷静,冷静
//调不出来就重构
#pragma GCC optimize(2)
#pragma GCC optimize("O3")
#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<ll,ll> pii;
const int N=1e6+10,mod=998244353;
struct node
{ll x,y,r;
}p[N];
vector<ll> mp[N];
ll st[N];
ll cnt[2];
bool dfs(ll x,ll zhi)
{st[x]=zhi;cnt[zhi]++;bool l=1;for(auto j:mp[x]){if(st[j]==-1){if(!dfs(j,1-zhi)){l=0;}}if(st[x]==st[j])l=0;}return l;
}
int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);ll n;cin>>n;for(int i=1;i<=n;i++){cin>>p[i].x>>p[i].y>>p[i].r;}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){ll dx=p[i].x-p[j].x,dy=p[i].y-p[j].y,r=p[i].r+p[j].r;if(dx*dx+dy*dy==r*r){mp[i].push_back(j);mp[j].push_back(i);}}}memset(st,-1,sizeof(st));for(int i=1;i<=n;i++){if(st[i]!=-1)continue;cnt[0]=cnt[1]=0;if(!dfs(i,1))continue;if(cnt[0]!=cnt[1]){cout<<"YES";return 0;}}cout<<"NO";return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • golang 项目打包部署环境变量设置
  • FPGA原型验证(七):如何选择、搭建原型验证平台?
  • Java-关键字(static,final)
  • redis数据库
  • ER模型理论和三范式
  • Infinitar链游新发展新机遇
  • 探索Qt的QVariant:灵活的数据交换机制
  • 无法下载 https://mirrors./ubuntu/dists/bionic/main/binary-arm64/Packages
  • (十六)视图变换 正交投影 透视投影
  • vue3.0(十六)axios详解以及完整封装方法
  • 【React】React18 Hooks 之 useReducer
  • C++--智能指针
  • 洛谷 数学进制 7.9
  • C++八股(五)之Linux常用命令
  • Linux内核 -- 内存管理之scatterlist结构使用
  • CentOS7简单部署NFS
  • ES6 学习笔记(一)let,const和解构赋值
  • mockjs让前端开发独立于后端
  • MySQL主从复制读写分离及奇怪的问题
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Python学习之路16-使用API
  • vue-loader 源码解析系列之 selector
  • 半理解系列--Promise的进化史
  • 飞驰在Mesos的涡轮引擎上
  • 分布式任务队列Celery
  • 回顾2016
  • 前端面试之CSS3新特性
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 算法-插入排序
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • ​什么是bug?bug的源头在哪里?
  • # Spring Cloud Alibaba Nacos_配置中心与服务发现(四)
  • $refs 、$nextTic、动态组件、name的使用
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (十八)SpringBoot之发送QQ邮件
  • (一)appium-desktop定位元素原理
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • ./configure,make,make install的作用
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET Micro Framework 4.2 beta 源码探析
  • .net mvc部分视图
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .project文件
  • /etc/fstab和/etc/mtab的区别
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • :如何用SQL脚本保存存储过程返回的结果集
  • ;号自动换行
  • @antv/g6 业务场景:流程图
  • @SuppressLint(NewApi)和@TargetApi()的区别