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

长沙网站推广系统动态wordpress动态主题

长沙网站推广系统,动态wordpress动态主题,家乡网站建设,widgets wordpress怎么建一.字符串接龙思路整理BFS建模这个题可以建模为 无权图最短路径问题。图的节点:每个单词。图的边:如果两个单词只有一个字母不同,则它们之间有一条边。问题变成:从 beginStr 出发,走最少几步到达 endStr。BFS核心逻辑用…

一.字符串接龙

思路整理

  1. BFS建模

    • 这个题可以建模为 无权图最短路径问题

    • 图的节点:每个单词。

    • 图的边:如果两个单词只有一个字母不同,则它们之间有一条边。

    • 问题变成:从 beginStr 出发,走最少几步到达 endStr

  2. BFS核心逻辑

    • 用队列 queue 维护搜索状态,每个状态包含:

      • 当前单词 word

      • 当前步数 step

    • 初始时入队 [beginStr, 1](起点记为第1步)。

  3. 搜索过程

    • 出队一个单词 word,判断是否已经到达 endStr

      • 如果是,直接返回当前 step

    • 否则,遍历 strList,找到所有与 word 相差一个字母的单词:

      • 若该单词未被访问过,则标记为已访问并入队 (nextWord, step+1)

  4. 终止条件

    • 若 BFS 队列空了仍未找到 endStr,说明无法转换,返回 0



from collections import dequedef judge(s1, s2):count = 0for i in range(len(s1)):if s1[i] != s2[i]:count += 1return count == 1n = int(input())
beginStr, endStr = map(str, input().split())
if beginStr == endStr:print(0)exit() #直接结束整个程序
strList = []
for i in range(n):strList.append(input())visited = [False for _ in range(n)]
que = deque([[beginStr, 1]])        #[beginStr, 1]:外层 [] 是为了构造队列初始内容,内层 [] 是为了把 beginStr 和 1 绑在一起
while que:curStr, step = que.popleft()if judge(curStr, endStr):print(step+1)exit()for i in range(n):if not visited[i] and judge(strList[i], curStr):visited[i] = Trueque.append([strList[i], step+1])

二.有向图的完全可达性

思路:

🚀 一、DFS(深度优先搜索)

思路:

  • 核心思想:一条路走到黑,直到走不动再回溯。

  • 递归 / 栈 实现。

  • visited(集合或数组)避免重复访问。

  • 常用于:连通分量计数、拓扑排序、判断是否有环、路径搜索。

模板:

def dfs(node, graph, visited): if node in visited: return visited.add(node) # 遍历当前节点的所有邻居 for neighbor in graph[node]: dfs(neighbor, graph, visited)


🚀 二、BFS(广度优先搜索)

思路:

  • 核心思想:按层扩展(逐层推进)。

  • 队列 实现(collections.deque)。

  • 也需要 visited 避免重复。

  • 常用于:最短路径(无权图)、层序遍历。

模板:

from collections import deque def bfs(start, graph): visited = set([start]) queue = deque([start]) while queue: node = queue.popleft() for neighbor in graph[node]: if neighbor not in visited: visited.add(neighbor) queue.append(neighbor)

用bfs:

#有向图: 邻接表import collectionsdef bfs(root,graph):visited = set()que = collections.deque([root])visited.add(root)while que:cur = que.popleft()for nei in graph[cur]:if nei not in visited:visited.add(nei)que.append(nei)return visiteddef main():#读入 K 条边,构建一个 邻接表 graphN, K = map(int, input().split())graph = collections.defaultdict(list)for _ in range(K):src, dest = map(int, input().strip().split())graph[src].append(dest)visited = bfs(1, graph)if visited == set(range(1, N + 1)):return 1return -1if __name__ == "__main__":print(main())

用dfs

#有向图: 邻接表import collectionsdef dfs(node, graph, visited):if node in visited:returnvisited.add(node)for nei in graph[node]:dfs(nei, graph, visited)return visiteddef main():#读入 K 条边,构建一个 邻接表 graphN, K = map(int, input().split())graph = collections.defaultdict(list)for _ in range(K):src, dest = map(int, input().strip().split())graph[src].append(dest)visited = set()dfs(1, graph, visited)if visited == set(range(1, N + 1)):return 1return -1if __name__ == "__main__":print(main())

http://www.dtcms.com/a/427195.html

相关文章:

  • 基于Matlab实现路径规划
  • 给定数据规模的ACM风格笔试题-子矩阵的最大累加和问题
  • 一站式服务图片wordpress博客整站源码
  • 明星粉丝网站怎么做建设银行手机银行官方网站下载安装
  • Spring boot中 限制 Mybatis SQL日志的大字段输出
  • SQL Server数据库事务日志问题的诊断与解法(从膨胀到瘦身)
  • Postgresql CLOG文件及其从库同步解析
  • wordpress 授权一个空间两个网站对seo
  • 正规的招聘网站永州市网站建设
  • 加强教育信息网站建设昆山建设工程安监站网站
  • EndoChat:面向内镜手术的基于事实依据的多模态大型语言模型|文献速递-文献分享
  • 零基础学AI大模型之ChatModel聊天模型与ChatPromptTemplate实战
  • 产生式规则对自然语言处理深层语义分析的影响与启示研究
  • web渗透之Python反序列化漏洞
  • 做办公用品网站工作计划黄页网站是什么
  • 论文阅读 (1) :Control Flow Management in Modern GPUs
  • 吉林省软环境建设网站网络营销属于哪个专业
  • iOS 26 系统流畅度检测 从视觉特效到帧率稳定的实战策略
  • 2025云栖大会,机器人商业时代降临
  • C++面向对象编程三大特性之一:多态
  • TapTalk | 圆桌实录:澳门综合度假村敏捷转型之旅,MongoDB + TapData 赋能酒店业卓越实践
  • 机器人市场:犹如一颗深水核弹
  • 用VS做的网站怎么连接数据库深圳人才招聘网官网
  • mysql_query函数:数据库世界的信使
  • 【最新】Navicat Premium 17
  • Eclipse Mosquitto MQTT 代理中持久性引擎(database.c 概念)的作用分析报告
  • 建设网站公司兴田德润在哪里百度关键词排名价格
  • UNet改进(42):结合2D Sinusoidal Positional Encoding与Frequency Attention模型
  • Transformer模型:深度解析自然语言处理的革命性架构——从注意力机制到基础架构拆解
  • Linux 内核空间 并发竞争处理 共享资源线程同步