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

abc434e

https://atcoder.jp/contests/abc434/tasks/abc434_e
这道题如果我们考虑将 \(x - r\)\(x + r\) 连边,它肯定会形成一堆联通块。
我们看这个联通块的形状,如果是一棵树,因为我们的任务是给每一条边都选一个相邻的点,所以此时我们最大就是可以选边的数量个点。
比如说下面这个:
image
其中橙色的点是我们选的点,箭头代表每一条边对应所选的点。
如果不是一棵树,我们可以选出它任意一个生成树,这样答案就是点数减去 \(1\),然后我们再考虑其他的边中的任意一个边,显然我们可以从这条边所连的点中再选取一个,这样的话最大就是联通块中点的数量。
image
就像这样,其中绿色的是我们选的那个生成树,橙色的那条边是我们另选出来的那条边,紫色的点是我们生成树中选的点,紫色的箭头表示我们生成树中的边对应所选的点,橙色的点是我们另选出来的那条边所选的点。


然后我们发现,答案其实就是总的点数减去树的个数。
实现的话我们可以使用并查集来维护(记得对点离散化)。

点击查看代码
#include <iostream>
#include <algorithm>
#include <vector>
#include <map>using std::cin;
using std::cout;
const int N = 2e5 + 10;int tot;
int go[N << 1];
int a[N << 1];
int sizep[N << 1];
int sizee[N << 1];
std::vector<int> vec;
std::map<int, int> map;int find(int x)
{if (x == go[x])return x;return go[x] = find(go[x]);
}int main()
{int n;cin >> n;for (int i = 1; i <= n; ++i){int x, r;cin >> x >> r;a[++tot] = x + r;a[++tot] = x - r;vec.push_back(x - r);vec.push_back(x + r);}for (int i = 1; i <= 2 * n; ++i)go[i] = i, sizep[i] = 1;std::sort(vec.begin(), vec.end());vec.erase(std::unique(vec.begin(), vec.end()), vec.end());int all = vec.size();for (int i = 1; i <= tot; ++i)map[a[i]] = std::lower_bound(vec.begin(), vec.end(), a[i]) - vec.begin() + 1;for (int i = 2; i <= tot; i += 2){int u = find(map[a[i - 1]]);int v = find(map[a[i]]);if (u == v)sizee[u]++;else{go[u] = v;sizee[v] += sizee[u] + 1;sizep[v] += sizep[u];}}int ans = all;for (int i = 1; i <= all; ++i){if (find(i) == i)ans -= (sizee[i] == sizep[i] - 1);}cout << ans << '\n';return 0;
}
http://www.zskr.cn/news/66515.html

相关文章:

  • 实用指南:Linux网络HTTP(上)(7)
  • 国内生产过碳酸钠的厂家有哪些?成膜助剂直销厂家:质量好、工业级的过碳酸钠厂家名单
  • 20232411 2025-2026-1 《网络与系统攻防技术》实验七实验报告
  • 过碳酸钠生产厂家哪家好?全球过碳酸钠供过碳酸钠源头厂家:质量好、含氧量高的过碳酸钠厂家推荐
  • 软件工程基础第三次作业
  • 过碳酸钠出口厂商有哪些?质量好的过碳酸钠厂家TOP前10精选:过碳酸钠外贸公司推荐名单
  • Day51(21)-F:\硕士阶段\Java\课程代码\后端\web-ai-code\springboot-aop-quickstart
  • 2025/11/30 今天没有自我学习
  • 初三 whk 记
  • set操作
  • 2025 补水嫩肤 + 水润双效沐浴露排行榜 TOP10,梵玢成沐浴首选!
  • 云南旅游,旅行社怎么选?看这份五大品牌榜就够了,权威数据+正规资质+定制服务+旅客口碑推荐
  • RustFS安全架构揭秘:其“内存安全”特性如何实现企业级数据可靠?
  • 过碳酸钠进口 CIF 价格 全球供应商及国内优质代理商名录:TOP榜单解析
  • 全弹性锂离子电池技术突破,可拉伸5000%
  • HTTP/2协议漏洞解析:通过HEADERS帧填充实现拒绝服务攻击
  • loj 515 贪心只能过样例
  • 《程序员修建之道:从小工到专家》阅读笔记3
  • CCPC2025 重庆站游记
  • Java项目中最常用的6个设计模式
  • IDEA中使用http协议
  • C语言结构体全面解析与内存优化 - 实践
  • ESP32C3开发指南(基于IDF):console控制台命令行交互功能 - 教程
  • vue+devtools下载地址
  • Google Benchmark:高性能C++代码基准测试框架
  • 2025年11月景区饮品供应商推荐:避坑要点与行业权威评测报告
  • 2025年11月景区饮品供应商推荐榜单:一份基于市场数据客观选择指南
  • 基于深度学习的PCB缺陷检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
  • 成膜助剂贸易公司TOP10优选,出口厂商与资质供应商清单权威推荐
  • 过碳酸钠哪家质量好?过碳酸钠供应商TOP10名单优选:销量领先欧盟标准供应商