news 2026/6/11 4:42:26

打卡信奥刷题(2993)用C++实现信奥题 P6121 [USACO16OPEN] Closing the Farm G

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
打卡信奥刷题(2993)用C++实现信奥题 P6121 [USACO16OPEN] Closing the Farm G

P6121 [USACO16OPEN] Closing the Farm G

题目背景

本题和 银组同名题目 在题意上一致,唯一的不同是数据范围。

题目描述

FJ 和他的奶牛们正在计划离开小镇做一次长的旅行,同时 FJ 想临时地关掉他的农场以节省一些金钱。

这个农场一共有被用M MM条双向道路连接的N NN个谷仓(1 ≤ N , M ≤ 2 × 10 5 1 \leq N,M \leq 2 \times 10^51N,M2×105)。为了关闭整个农场,FJ 计划每一次关闭掉一个谷仓。当一个谷仓被关闭了,所有的连接到这个谷仓的道路都会被关闭,而且再也不能够被使用。

FJ 现在正感兴趣于知道在每一个时间(这里的“时间”指在每一次关闭谷仓之前的时间)时他的农场是否是“全连通的”——也就是说从任意的一个开着的谷仓开始,能够到达另外的一个谷仓。注意自从某一个时间之后,可能整个农场都开始不会是“全连通的”。

输入格式

输入第一行两个整数N , M N,MN,M

接下来M MM行,每行两个整数u , v u,vu,v1 ≤ u , v ≤ N 1 \leq u,v \leq N1u,vN),描述一条连接u , v u,vu,v两个农场的路。

最后N NN行每行一个整数,表示第i ii个被关闭的农场编号。

输出格式

输出N NN行,每行包含YESNO,表示某个时刻农场是否是全连通的。

第一行输出最初的状态,第i ii行(2 ≤ i ≤ N 2 \leq i \leq N2iN)输出第i − 1 i-1i1个农场被关闭后的状态。

输入输出样例 #1

输入 #1

4 3 1 2 2 3 3 4 3 4 1 2

输出 #1

YES NO YES YES

C++实现

#include<bits/stdc++.h>usingnamespacestd;vector<int>e[200005];intf[200005];intm,n;intfind(intx){if(f[x]==x)returnx;returnf[x]=find(f[x]);}intmerge(intx,inty){if(find(x)==find(y))return0;f[find(x)]=find(y);return1;}//标准的并查集操作intl,r;intdel[200005];//删除的点intsum;//联通块数量boolok[200005];//是否全部连通intmain(){scanf("%d%d",&n,&m);for(registerinti=1;i<=m;i++){scanf("%d%d",&l,&r);e[l].push_back(r);e[r].push_back(l);}//vector存储边,是双向存储for(registerinti=1;i<=n;i++)scanf("%d",&del[i]);for(registerinti=n;i>=1;i--){//倒序枚举删除点intx=del[i];f[x]=x;//初始化 ,如果在之前全部初始化了,不好判断是否枚举过++sum;//加一个点,联通块数量++,之后再进行操作for(vector<int>::iterator it=e[x].begin();it!=e[x].end();it++){inty=*it;if(!f[y])continue;//如果还没有加这个点,因为之前的初始化sum-=merge(x,y);//如果可以连通,合并之后联通块--}if(sum<=1)ok[i]=true;//联通块为1的话,说明全部连通}for(registerinti=1;i<=n;i++){//正序输出if(ok[i]==true)puts("YES");elseputs("NO");}return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/11 4:36:56

DCT-Net模型推理服务的高可用架构设计

DCT-Net模型推理服务的高可用架构设计 1. 为什么需要高可用架构 在实际应用中&#xff0c;DCT-Net人像卡通化模型可能会面临各种挑战。想象一下&#xff0c;当你正在为一个重要项目批量处理图片时&#xff0c;服务突然宕机&#xff0c;或者响应变得异常缓慢&#xff0c;这种体…

作者头像 李华
网站建设 2026/6/11 4:34:30

阻抗匹配原理与高速射频电路工程实践

1. 阻抗的本质与物理意义在电路分析与高频系统设计中&#xff0c;“阻抗”并非一个抽象概念&#xff0c;而是对端口电压与电流关系的完整描述。其数学表达为复数形式&#xff1a;$$ Z R jX R j(\omega L - \frac{1}{\omega C}) $$其中 $R$ 为电阻分量&#xff0c;表征能量耗…

作者头像 李华
网站建设 2026/6/11 4:38:13

汽车制造场景:C#上位机+YOLO实现车身冲压件缺陷快速筛查

一、项目背景 今年年初给某头部自主品牌车企做冲压车间的缺陷检测项目,主要检测车门、翼子板等冲压件的裂纹、凹坑、毛刺三类缺陷,之前是人工目检,每人每天要查2000件,漏检率高达2%,经常流到总装车间才发现,返工成本一次就上万。 要求检测节拍3s/件,缺陷识别率≥99.5%,…

作者头像 李华
网站建设 2026/5/18 22:45:12

Qwen3-VL-30B惊艳案例:看AI如何读懂复杂图像和文档

Qwen3-VL-30B惊艳案例&#xff1a;看AI如何读懂复杂图像和文档 1. 多模态AI的新标杆 当一张复杂的医学影像摆在面前&#xff0c;普通人可能只能看到模糊的阴影和线条&#xff0c;而Qwen3-VL-30B却能像专业放射科医生一样&#xff0c;准确识别出微小的异常结构。这个拥有300亿…

作者头像 李华
网站建设 2026/5/18 22:45:14

AI助力SEO关键词优化的全新发展路径与实践分享

本文探讨了AI在SEO关键词优化中的重要性&#xff0c;重点分析AI技术如何帮助提升搜索引擎排名、增强内容相关性及改善用户体验。内容将涵盖AI技术的几个核心应用&#xff0c;包括精准识别用户需求、数据驱动的关键词选择以及实时策略调整等。此外&#xff0c;通过实际案例&…

作者头像 李华
网站建设 2026/5/18 22:46:08

Faiss向量数据库实战指南:从入门到精通

1. 为什么你需要Faiss&#xff1f;从“大海捞针”到“精准定位” 如果你正在处理AI项目&#xff0c;比如做一个图片搜索引擎、一个智能推荐系统&#xff0c;或者一个海量文档的语义检索工具&#xff0c;那你肯定遇到过这个问题&#xff1a;怎么从上千万甚至上亿个“向量”里&am…

作者头像 李华