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

2123:图的存储与访问

这是最近的一道新题,看没什么题解,那我就来写一篇叭…

1.先把输入输出都一股脑写进去,然后连边,注意啦!这是有向图,所以只有从 Ui 到 Vi 这么一个方向哦!

2.写个 bfs,调用 b f s ( i ) bfs(i) bfs(i) 预处理从 i i i 出发的可达节点,我们看一下这个 bfs 是如何实现的:

  • 初始化队列 q q q,并将起始节点 s t st st 入队。
  • 标记 o k s t s t ok_{st st} okstst 1 1 1,因为每个节点可以到达自身喵!
  • 当队列不空时,取出队首节点 u u u,遍历其所有邻接节点 v v v
  • 如果 v v v 还没被标记为从 s t st st 可达,就标记并加入队列,接着继续搜索。

3.读入 q q q 次询问的 x x x y y y,当 o k x y ok_{xy} okxy 1 1 1,输出 Yes,否则输出 No 哦!

上个代码喵…

#include<bits/stdc++.h>
using namespace std;
vector<int> lb[1005];//连边。
bool ok[1005][1005];//用来表示从 x 是否可以到达 y。
int n, m, k, u, v, x, y;
void bfs(int st) {queue<int> q;q.push(st);ok[st][st]=1;while(!q.empty()) {int u=q.front();q.pop();for(int v:lb[u]) if(!ok[st][v]) {ok[st][v]=1;q.push(v);}}
}
int main() {cin>> n>> m>> k;for(int i=1;i<=m;i++) {cin>> u>> v;lb[u].push_back(v);}for(int i=1;i<=n;i++) bfs(i);while(k--){cin>> x>> y;if(ok[x][y]) cout<<"Yes"<<endl;else cout<<"No"<<endl;}return 0;
}
http://www.xdnf.cn/news/12311.html

相关文章:

  • Java -jar命令运行外部依赖JAR包的深度场景分析与实践指南
  • 内容力重塑品牌增长:开源AI大模型驱动下的智能名片与S2B2C商城赋能抖音生态种草范式
  • 哈希(Hash)
  • 使用VSCode开发Django指南
  • 短视频矩阵SaaS系统:开源部署与核心功能架构指南
  • 飞算 JavaAI 与国内外一些常见 AI 编程工具对比的优势:
  • JavaSec-SPEL - 表达式注入
  • 数据结构之常用排序算法(冒泡、选择等)
  • 使用 Docker Compose 部署 Jenkins(LTS 版)持续集成环境
  • uniapp 开发ios, xcode 提交app store connect 和 testflight内测
  • 学习STC51单片机29(芯片为STC89C52RCRC)
  • RabbitMQ 学习
  • Gerrit+repo管理git仓库,如果本地有新分支不能执行repo sync来同步远程所有修改,会报错
  • 因泰立科技H1X激光雷达:因泰立科技为智慧工业注入新动力
  • 使用 Coze 工作流一键生成抖音书单视频:全流程拆解与技术实现
  • Python: 操作 Excel折叠
  • [蓝桥杯]矩阵翻硬币
  • 降雨预测系统(机器学习)
  • 知识图谱技术概述
  • 五子棋测试用例
  • 关于Web安全:8. Web 攻击流量分析与自动化
  • 基于大模型的 UI 自动化系统
  • JuiceFS v1.3-Beta2:集成 Apache Ranger,实现更精细化的权限控制
  • figma MCP + cursor如何将设计稿生成前端页面
  • WebDB:一款免费高效的数据库开发工具
  • 《深度体验 Egg.js:打造企业级 Node.js 应用的全景指南》
  • IDEA 中 Undo Commit,Revert Commit,Drop Commit区别
  • 「基于连续小波变换(CWT)和卷积神经网络(CNN)的心律失常分类算法——ECG信号处理-第十五课」2025年6月6日
  • android手势创建及识别保姆级教程
  • Ref vs. Reactive:Vue 3 响应式变量的最佳选择指南