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

题解:AcWing 1189 刻录光盘

【题目来源】

AcWing:1189. 刻录光盘 - AcWing题库

【题目描述】

在JSOI2005夏令营快要结束的时候,很多营员提出来要把整个夏令营期间的资料刻录成一张光盘给大家,以便大家回去后继续学习。组委会觉得这个主意不错!可是组委会一时没有足够的空光盘,没法保证每个人都能拿到刻录上资料的光盘,又来不及去买了,怎么办呢?!

组委会把这个难题交给了LHC,LHC分析了一下所有营员的地域关系,发现有些营员是一个城市的,其实他们只需要一张就可以了,因为一个人拿到光盘后,其他人可以带着U盘之类的东西去拷贝啊!

可是,LHC调查后发现,由于种种原因,有些营员并不是那么的合作,他们愿意某一些人到他那儿拷贝资料,当然也可能不愿意让另外一些人到他那儿拷贝资料,这与我们JSOI宣扬的团队合作精神格格不入!!!

现在假设总共有\(N\)个营员\((2<=N<=200)\),每个营员的编号为\(1\sim N\)。LHC给每个人发了一张调查表,让每个营员填上自己愿意让哪些人到他那儿拷贝资料。当然,如果\(A\)愿意把资料拷贝给\(B\),而\(B\)又愿意把资料拷贝给\(C\),则一旦\(A\)获得了资料,则\(B\)\(C\)都会获得资料。

现在,请你编写一个程序,根据回收上来的调查表,帮助LHC计算出组委会至少要刻录多少张光盘,才能保证所有营员回去后都能得到夏令营资料?

【输入】

先是一个数\(N\),接下来的\(N\)行,分别表示各个营员愿意把自己获得的资料拷贝给其他哪些营员。即输入数据的第\(i+1\)行表示第i个营员愿意把资料拷贝给那些营员的编号,以一个\(0\)结束。如果一个营员不愿意拷贝资料给任何人,则相应的行只有\(1\)\(0\),一行中的若干数之间用一个空格隔开。

【输出】

一个正整数,表示最少要刻录的光盘数。

【输入样例】

5
2 3 4 0
4 5 0
0
0
1 0

【输出样例】

1

【解题思路】

image

【算法标签】

《AcWing 1189 刻录光盘》 #有向图强联通分量#

【代码详解】

#include <bits/stdc++.h>
using namespace std;const int N = 210; // 定义常量N,表示最大节点数为210
int dist[N][N], f[N]; // dist数组用于存储节点之间的连接关系,f数组用于记录每个节点的根节点
int n; // n表示节点的数量// Floyd-Warshall算法,用于计算所有节点对之间的最短路径
void floyd() {for (int k = 1; k <= n; k++) // k为中转节点for (int i = 1; i <= n; i++)for (int j = 1; j <= n; j++)if (dist[i][k] == 1 && dist[k][j] == 1) // 如果i到k和k到j有路径,则i到j也有路径dist[i][j] = 1;
}int main() {cin >> n; // 输入节点数量for (int i = 1; i <= n; i++) { // 读取每个节点的连接关系int j;cin >> j;while (j > 0) { // 读取与节点i直接相连的节点jdist[i][j] = 1; // 设置i到j的连接关系为1cin >> j;}}floyd(); // 调用Floyd-Warshall算法计算所有节点对之间的连接关系for (int i = 1; i <= n; i++) f[i] = i; // 初始化每个节点的根节点为其自身for (int i = 1; i <= n; i++) for (int j = 1; j <= n; j++)if (dist[i][j] == 1) f[j] = f[i]; // 如果i和j直接相连,则将j的根节点设为i的根节点int ans = 0; // 记录独立集合的数量for (int i = 1; i <= n; i++)if (f[i] == i) ans++; // 如果节点i的根节点是其自身,则该节点是一个独立集合的根节点cout << ans; // 输出独立集合的数量return 0;
}

【运行结果】

5
2 4 3 0
4 5 0
0
0
1 0
1
http://www.jsqmd.com/news/394549/

相关文章:

  • 2026年1月玉米粉碎机厂家口碑榜,这些推荐很靠谱,挤压造粒机/翻堆机/双螺杆造粒机/药材粉碎机,粉碎机实力厂家排行 - 品牌推荐师
  • 想高价回收杉德斯玛特卡?一站式平台与高效流程攻略 - 团团收购物卡回收
  • 上帝之眼_数理艺术编程_C++精灵库编程案例
  • 题解:AcWing 1164 加工零件
  • 国内开源大模型竞争加剧,技术迭代与应用落地成焦点
  • 2026隧道/机房/装饰钢板厂家推荐:无锡华龙机房新型装饰材料有限公司,多品类钢板供应 - 品牌推荐官
  • 【Redis】Ubuntu22.04安装redis++ - 实践
  • 题解:AcWing 848 有向图的拓扑序列
  • 2026盘式过滤机厂家推荐:连云港格律诗环保设备,陶瓷/真空过滤机全系供应,技术领先 - 品牌推荐官
  • 题解:AcWing 847 图中点的层次
  • 工业成品多维检测模型 - 指南
  • 2026年铝单板生产厂家实力推荐:金盛铝业有限公司,抗菌/超耐候/仿石材/双曲铝单板全系供应 - 品牌推荐官
  • 武商一卡通如何快速回收?简单安全的平台与流程推荐 - 团团收购物卡回收
  • Sophos Firewall (SFOS) v21.5 MR2 发布 - 下一代防火墙
  • 2026年防腐涂料推荐:鲸鱼防腐涂料,环氧锌黄/煤沥青/云铁/富锌等全系产品供应 - 品牌推荐官
  • 【CTFshow-pwn系列】03_栈溢出【pwn 049】详解:静态编译下的 mprotect 权限修改技巧
  • 2026年车丝机设备厂家推荐:航城科技有限公司,PVC/PE/钢管数控车丝机全系供应 - 品牌推荐官
  • 把坑都踩完了,AI论文写作软件 千笔·专业论文写作工具 VS 云笔AI
  • 2026年光伏系统全流程服务商推荐:浙江兆基电力科技,组件安装/阵列排布/电站施工一站式服务 - 品牌推荐官
  • 2026年流量计生产厂家推荐:江苏雷泰自动化仪表,气体涡轮/超声波/电磁/涡街流量计全品类供应 - 品牌推荐官
  • 2026冲刺用!顶流之选的AI论文软件 —— 千笔ai写作
  • 2026年水肥一体机设备厂家推荐:山东淋垚智慧农业科技,智能/移动/精准施肥设备全系供应 - 品牌推荐官
  • 2026芯片产品公司推荐:深圳市众芯微电子有限公司,a15/CPU/AI/基因芯片等全品类供应 - 品牌推荐官
  • 全网最全 8个降AIGC软件测评:本科生降AI率必备工具推荐
  • 2026年电加热/树脂/衬四氟/外盘管/化工反应釜厂家推荐:无锡鑫泓源石化装备全系供应 - 品牌推荐官
  • 2026年海外移民申请服务推荐:上海加鼎因私出入境,涵盖永居/护照/签证/养老移民全流程 - 品牌推荐官
  • Saliency-Aware Multi-Route Thinking Revisiting Vision-Language Reasoning
  • 2026年镀锌管厂家推荐:天津市茂金金属制品有限公司,热镀锌/焊接/大口径/薄壁等全系镀锌管供应 - 品牌推荐官
  • 信息学奥赛培训教程(配套习题)
  • ReMoRa Multimodal Large Language Model based on Refined Motion Representation for Long-Video Underst