puzzle(0611)《组合+图论》追捕问题

目录

一,追及问题

1,警察和小偷

2,旋转的4个硬币

3,抓狐狸

二,围堵问题

三,追及+围堵


一,追及问题

1,警察和小偷

如下图,警察先走,警察和小偷轮流一人走一步,每次只能沿着线走到相邻的圆圈,

问警察能不能抓到小偷?

答案:能

首先编号

如果警察走到5,那么小偷就只能走到1

然后如果警察走到6,那么小偷就只能走到2

然后如果警察走到4,那么小偷无论是走到1还是5,下一步都会被警察抓住。

2,旋转的4个硬币

问题:

有一个正方形棋盘,每个顶点上放了一枚硬币。你将要玩一个游戏,规则如下:

1、你不知道游戏开始时硬币的状态(各自是哪一面朝上),但已知它们不是同一面

2、游戏中任何时候你都无法看到任何硬币

3、每一轮你可以指定任意个硬币(指定位置),工作人员会将它们同时翻面.

3、每轮之后,如果棋盘上的所有硬币都是同一面朝上,也就是说都是正面或者都是背面,则判定你胜利,游戏结束

4、如果没有满足上述条件,棋盘将会被随机旋转(90°的整数倍)并进入下一轮,而且你也不知道转了多少度

请问最坏情况下最少需要几轮就可以保证获得胜利?

思路:

首先推理出,其实只需要3种操作:上、上下、上左。因为任意操作,其实都和这3个操作是等价的(轮换对称性)

其次根据这3个操作,很容易推出最快的方案,有7步。

答案:

按照 上下、上左、上下、上、上下、上左、上下 7步去操作,最多7步就胜利了。

PS:

这题抽象成图论的问题,其实和警察和小偷的规则差不多。当然,中间一些转化方法还是需要稍微思考下,转化成的图也稍微复杂一点。

3,抓狐狸

五个洞排成一排,其中一个洞里藏有一只狐狸。每个夜晚,狐狸都会跳到一个相邻的洞里;每个白天,你都只允许检查其中一个洞。怎样才能保证抓住狐狸?   

答案:

依次检查第2、2、3、4、4、3、2个洞即可。

首先检查第2个洞,如果没抓到狐狸,说明这时狐狸可能在第1、3、4、5个洞

然后检查第2个洞,如果没抓到狐狸,说明这时狐狸可能在第3、4、5个洞

然后检查第3个洞,如果没抓到狐狸,说明这时狐狸可能在第2、4、5个洞

然后检查第4个洞,如果没抓到狐狸,说明这时狐狸可能在第1、3、5个洞

然后检查第4个洞,如果没抓到狐狸,说明这时狐狸可能在第2个洞

然后检查第3个洞,如果没抓到狐狸,说明这时狐狸可能在第1个洞

然后检查第2个洞,就一定会抓到狐狸了。

二,围堵问题

围住神经猫

三,追及+围堵

老虎棋 老虎对羊是追及问题,羊对老虎是围堵问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3250069.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

开源模型应用落地-FastAPI-助力模型交互-进阶篇(三)

一、前言 FastAPI 的高级用法可以为开发人员带来许多好处。它能帮助实现更复杂的路由逻辑和参数处理,使应用程序能够处理各种不同的请求场景,提高应用程序的灵活性和可扩展性。 在数据验证和转换方面,高级用法提供了更精细和准确的控制&#…

【Git远程操作】理解分布式管理 | 创建远程仓库

目录 1.理解分布式管理 多人协作开发 2.创建远程仓库 2.1仓库名&路径 2.2初始化仓库&设置模板 1.理解分布式管理 目前我们学习的所有内容都是在本地来完成的。(add /commit /版本撤销回退/分支管理) Git是一个分布式 的版本控制系统。 分支…

c# listview控件调整标题显示顺序

右键点击listview,选择编辑列 修改DisplayIndex listview在成员位置点击上下箭头移动后,实际显示不会改变,因为DisplayIndex没有改变

IDEA的断点调试(Debug)

《IDEA破解、配置、使用技巧与实战教程》系列文章目录 第一章 IDEA破解与HelloWorld的实战编写 第二章 IDEA的详细设置 第三章 IDEA的工程与模块管理 第四章 IDEA的常见代码模板的使用 第五章 IDEA中常用的快捷键 第六章 IDEA的断点调试(Debug) 第七章 …

go-zero框架入门

go-zero框架环境的安装 goctl 若想用go-zero框架,还需要一些前置条件: 安装goctl go install github.com/zeromicro/go-zero/tools/goctllatest可以使用 goctl 命令查看是否安装成功 成功后安装protoc goctl env check --install --verbose --force…

云监控(华为) | 实训学习day2(10)

spring boot基于框架的实现 简单应用 - 用户数据显示 开发步骤 第一步:文件-----》新建---项目 第二步:弹出的对话框中,左侧选择maven,右侧不选任何内容. 第三步,选择maven后,下一步 第4步 :出现对话框中填写项目名称 第5步&…

【学术会议征稿】第六届信息与计算机前沿技术国际学术会议(ICFTIC 2024)

第六届信息与计算机前沿技术国际学术会议(ICFTIC 2024) 2024 6th International Conference on Frontier Technologies of Information and Computer 第六届信息与计算机前沿技术国际学术会议(ICFTIC 2024)将在中国青岛举行,会期是2024年11月8-10日,为…

FOG Project 文件名命令注入漏洞复现(CVE-2024-39914)

0x01 产品简介 FOG是一个开源的计算机镜像解决方案,旨在帮助管理员轻松地部署、维护和克隆大量计算机。FOG Project 提供了一套功能强大的工具,使用户能够快速部署操作系统、软件和配置设置到多台计算机上,从而节省时间和精力。该项目支持基于网络的 PXE 启动、镜像创建和还…

Python:拆包

拆包 适用于元组和列表 coordinates (1, 2, 3) 如果想要获取这三个值 本来应该这样做 xcoordinates[0] ycoordinates[1] zcoordinates[2] python 特性:简化获取步骤 x, y, z coordinates 输出中全是变量名,可以直接用 , 连接 print(x, y, z)

Python | Leetcode Python题解之第257题二叉树的所有路径

题目: 题解: class Solution:def binaryTreePaths(self, root: TreeNode) -> List[str]:paths list()if not root:return pathsnode_queue collections.deque([root])path_queue collections.deque([str(root.val)])while node_queue:node node_…

鸿蒙语言基础类库:【@system.request (上传下载)】

上传下载 说明: 从API Version 6开始,该接口不再维护,推荐使用新接口[ohos.request]。本模块首批接口从API version 4开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import request from system.re…

HarmonyOS ArkUi @CustomDialog 和promptAction.openCustomDialog踩坑以及如何选择

CustomDialog 内使用Link,如何正常使用 错误使用方式: 定义一个函数,在函数内使用弹窗,如下面代码showDialog: 这种使用方式,无法在自定义的CustomDialog内使用 Link,进行父子双向绑定&#x…

3、宠物商店智能合约实战(truffle智能合约项目实战)

3、宠物商店智能合约实战(truffle智能合约项目实战) 1-宠物商店环境搭建、运行2-webjs与宠物逻辑实现3-领养智能合约初始化4-宠物领养实现5-更新宠物领养状态 1-宠物商店环境搭建、运行 https://www.trufflesuite.com/boxes/pet-shop 这个还是不行 或者…

vue3前端开发-小兔鲜项目-图片懒加载的自定义标签

vue3前端开发-小兔鲜项目-图片懒加载的自定义标签!很多大型网站,因为首页面渲染的内容太多了,然而有些用户,可能在顶部就发现了自己感兴趣的内容,直接就点击跳转去了其他页面,因此,完全没有必要…

插画感言:成都亚恒丰创教育科技有限公司

插画感言:笔触间的灵魂对话 在这个快节奏、高压力的时代,我们时常在寻找那些能够触动心灵、让灵魂得以片刻栖息的角落。而插画,这一融合了艺术与情感的独特形式,便如同一股清泉,缓缓流淌进每个人的心田,以…

visual studio配置xlnt

xlnt下载:github下载地址 下载后,打开cmake,设置源和目标 选择对应的VS版本和平台 生成之后,在xlnt文件夹中右键运行VS 打开之后如果没有发生报错,则生成->安装 (如果此处发生报错,提示…

MAVSDK-Java开源库的SDK库macOS平台编译

1.先安装好JDK17 2.克隆MAVSDK-Java源码 3.检测工程./gradlew check 发现未安装protoc-gen-mavsdk 安装后要添加到环境变量 4.安装protoc-gen-mavsdk pip3 install protoc-gen-mavsdk安装路径为: /opt/anaconda3/lib/python3.11/site-packages/protoc_gen_mavsdk

VS code配置docker远程连接

一 前置条件 1、本地已安装docker 2、服务端docker已配置Docker配置远程连接 二 VScode安装docker扩展 三 执行docker命令 1、切换到远程docker节点 docker context create remote-docker --docker "hosthttp://192.168.6.9:2375" 2、使用远程节点 docker cont…

适用于618/7xx芯片平台 AT开发 远程FOTA升级指南教程

简介 AT版本的远程升级主要是对AT固件版本进行升级,实际方式为通过合宙官方IOT平台升级或者使用自己搭建的服务器进行升级服务。 该文档教程流程适用于 618/716S/718P 芯片平台的Cat.1模块 合宙IOT平台配置 升级日志 —— 如何查看 升级日志 —— 响应码列表 响应…

Vue 3项目安装Element-Plus

Element Plus 是一个基于 Vue 3 的现代前端UI框架,它旨在提升开发体验,并为开发者提供高效、优雅的组件。如果你正在使用 Vue 3 进行项目开发,那么安装和集成 Element Plus 是一个不错的选择。在本文中,博主将详细介绍如何在 Vue …