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

1183: 信使PIPI

使用多源BFS,
注意1:方向数组别写错
注意2:kruskal算法要用并查集来维护
注意3:n个节点的最小生成树只需要找到n-1条边就可以了

#include<bits/stdc++.h>
using namespace std;
const int N=105;
char mp[N][N];
int n;
int id[N][N];
int x[N],y[N]; 
struct node{int s,t,u;				bool operator<(const node& a)const{return u>a.u; 	//小根堆 }
}; 
priority_queue<node> que; //node节点存放了一条边的权值和两个端点,优先队列有利于我kruskal 
int dir[4][2]= {{0,1}, {0,-1}, {1,0}, {-1,0}};
void BFS(int x,int y){int vis[N][N];memset(vis,0,sizeof(vis));queue<node> que2;		//这里node的s,t默认是目的点的坐标,起点x,y省略。 node temp = {x,y,0};que2.push(temp);vis[x][y]=1;while(!que2.empty()){node front = que2.front();que2.pop();if(id[front.s][front.t]!=-1){int qidian =id[x][y];int zhongdian=id[front.s][front.t];que.push({qidian,zhongdian,front.u});}for(int i=0;i<4;i++){int x1=front.s+dir[i][0];int y1=front.t+dir[i][1];if(x1>=0&&x1<n&&y1>=0&&y1<n&&!vis[x1][y1]){vis[x1][y1]=1;if(mp[x1][y1]=='#'){continue;}else{que2.push({x1,y1,front.u+1});}}}}
}
int fa[N];
int find(int i){if(fa[i] == i)return i;else return fa[i]=find(fa[i]);
} 
int main(){scanf("%d",&n); for(int i=0;i<n;i++){scanf("%s",mp[i]);}memset(id,-1,sizeof(id));int cnt=0;for(int i=0;i<n;i++){for(int j=0;j<n;j++)if(mp[i][j]=='c'||mp[i][j]=='C'){id[i][j]=++cnt;		//为楼标序号 ,序号从1开始 x[cnt]=i;				//我要记录每栋楼的坐标 y[cnt]=j;}				}	//接下来想办法求出每栋楼到其他所有楼的最短距离,并插入到优先队列中for(int i=1;i<=cnt;i++	) {BFS(x[i],y[i]);fa[i]=i;}int ans=0; //记录答案 int cnt2=0; //n个节点的最小生成树,找到n-1条边就可以了 while(cnt2<cnt-1){node front=que.top();//	cout<<front.s<<" "<<front.t<<" "<<front.u<<endl;que.pop();int a=find(front.s);int b=find(front.t);if(a!=b){ans+=front.u; fa[a]=b;cnt2++;}}printf("%d",ans); return 0;
}
http://www.jsqmd.com/news/460459/

相关文章:

  • SiameseUIE实际效果对比:自定义模式vs通用规则抽取准确率分析
  • 企业知识库构建核心:BERT文本分割助力非结构化文档入库
  • Git-RSCLIP模型的轻量化部署方案
  • DS-DGA-GCN:Detecting Fake Reviewer Groups in Dynamic Networks: An Adaptive Graph Learning Method
  • QQ音乐加密音频自由播放解决方案:qmcdump全平台使用指南
  • MiniCPM-V-2_6快速上手:上传图片/视频,AI帮你智能分析
  • MedGemma Medical Vision Lab效果展示:新生儿颅脑超声结构识别与评估
  • 一键部署GME检索服务:支持文本、图像、图文对输入
  • Neeshck-Z-lmage_LYX_v2实战教程:LoRA文件目录结构与自动扫描逻辑
  • 零成本打造跨设备游戏串流系统:开源工具Sunshine全攻略
  • GLM-OCR与MySQL联动实战:打造亿级图像文本检索系统
  • 突破QMC格式限制:实现音频文件自由转换的完整技术方案
  • GLM-ASR-Nano-2512高性能部署:TensorRT加速推理实测提速2.3倍
  • 7个专业技巧:让Switch手柄在电脑游戏中发挥最大价值
  • Modbus-TCP协议实战:从零开始搭建工业通信环境(Python示例)
  • Fish Speech 1.5效果展示:中英日多语言语音合成作品集
  • 5步实现微博图片批量采集:从技术原理到商业价值的全维度解析
  • Wan2.1-UMT5技术解析:从计算机组成原理视角看模型推理的硬件优化
  • 如何突破游戏帧率限制:OpenSpeedy性能优化工具全解析
  • Nunchaku FLUX.1-dev 文生图插件开发:为Typora编辑器集成实时配图生成功能
  • mPLUG-Owl3-2B多模态工具效果展示:宠物品种识别+健康状态评估+喂养建议
  • FineReport实战:用CONCATENATE函数解决18位ID导出Excel变科学计数法问题
  • 2026年工业制冷品牌盘点:6家顶尖公司深度解析 - 2026年企业推荐榜
  • ESP32-S3开发板硬件深度解析:供电、引脚与USB OTG双模设计
  • Cogito-V1-Preview-Llama-3B MATLAB与Python科学计算对比及模型调用桥接
  • KART-RERANK开发利器:IDE高效调试与集成开发环境配置
  • 内网穿透技术简介:安全访问本地部署的Qwen3-0.6B-FP8服务
  • 数据容器的切片
  • QWEN-AUDIO免配置环境:无需conda/pip,纯镜像启动Web TTS
  • 团队协作必备:TortoiseGit代码拉取与冲突解决实战教程