尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

【题解】Luogu P8269 [USACO22OPEN] Visits S

【题解】Luogu P8269 [USACO22OPEN] Visits S
📅 发布时间:2026/6/18 17:38:15

思路

容易发现题目给出了一张 \(n\) 个点 \(n\) 条边的有向图,联想到基环树。又因为每个点出度均为一所以是内向基环树。

考虑到题目中的“拜访”类似于拓扑排序,冲突仅存在于环上,所以总边权和去掉环上最小的一条边即为答案。但题目不保证联通,所以其实是基环森林,每棵树上都有一个环。全部去掉即可。

代码

#include<iostream>
#include<cstdio>
#define int long long
using namespace std;
const int N=1e5+10;
int n,ans;
int a[N],w[N];
int ind[N],outd[N];
int vis[N];
int mn(int u){int minw=w[u],t=a[u];while(t!=u){minw=min(minw,w[t]);t=a[t];}return minw;
}
void change(int u){int t=u;while(vis[t]==1){vis[t]=2;//与判环的标记区分,防止汇入上一枝重新入环t=a[t];}return ;
}
signed main(){scanf("%lld",&n);for(int i=1;i<=n;i++){scanf("%lld%lld",&a[i],&w[i]);ans+=w[i];} for(int i=1;i<=n;i++){if(!vis[i]){int t=i;while(!vis[t]){vis[t]=1;t=a[t];}//遍历这棵基环树直到出现环if(vis[t]==1) ans-=mn(t);//再搜一遍环求出最小边权change(i);//将走过的路全部标记,在从外向基环树的其他环外点搜索时不会再进入环内} }printf("%lld\n",ans);return 0;
} 

时间复杂度 \(O(n)\)。

相关新闻

  • Ubuntu环境中LLaMA Factory 的部署与配置—构建大语言模型微调平台 - 实践
  • WSL安装方法
  • 【题解】P11453 [USACO24DEC] Deforestation S

最新新闻

  • LevelDB dumpfile工具深度解析:揭秘Google高性能键值存储的底层数据格式
  • AI驱动Web自动化测试:Stagehand框架原理、实战与避坑指南
  • 天津钻石回收门店排行榜|禹竞名奢汇稳居榜首,本地变现首选靠谱商家 - 名奢变现站
  • 免费开源GUI原型设计终极指南:Pencil Project从入门到精通
  • 2026太阳镜品牌推荐榜:品质与格调兼具的十大之选 - 品牌评测官
  • 高效Windows系统优化工具Win11Debloat:三步实现系统清理与性能提升

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号