[COCI2017-2018#5] Planinarenje

news/2024/9/21 22:50:39/文章来源:https://www.cnblogs.com/dingxingdi/p/18378936

这道题目是二分图博弈的板子

介绍一下二分图博弈:

image

设两部的节点分别为\(x_1,x_2,...,x_n\)\(y_1,y_2,...,y_m\),先手选择了\(x_i\)这个节点,则先手必胜当且仅当\(x_i\)是最大匹配的必须点(也就是说少了\(x_i\)的话最大匹配数会减少)

证明:

任选一个最大匹配,则\(x_i\)为匹配点,先手的策略是每次都选择\(x_i\)对应的匹配点\(y\);在后手选择的时候,无论如何都不会选择到当前匹配下的非匹配的\(x\),这是因为如果选择到了,比如说\(x_1-y_1-x_2-y_2-···-x_k\),其中\(x_k\)不是当前匹配下的匹配点,那么我们可以让\(y_1\)匹配\(x_2\)\(y_2\)匹配\(x_3\),···,\(y_{k-1}\)匹配\(x_k\)从而获得一个匹配数不变的匹配而且不包含\(x_i\),这与\(x_i\)为必须点矛盾,所以先手必胜

如果说先手选择了非必须点\(x_i\),那么任选一个不包含\(x_i\)的最大匹配,先手走到的\(y\)一定是匹配点(否则存在增广路);进一步由在当前匹配的情况下从\(x_i\)出发不存在增广路可知,后手策略为每次选择当前匹配下\(y\)的匹配点\(x\)即可,所以先手必败

至于寻找必须点,洛谷题解给了几种方法;我想到了一种,先随便找出一个最大匹配,然后枚举匹配点\(x\),设其匹配点为\(y\),那么我们考虑是否存在非匹配点\(x^{'}\)使得\(y\)\(x^{'}\)之间有边,如果有的话就说明\(x\)不是匹配点(应该是正确的,但是还没有验证,正确性基于交错树分析吧)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# StartsWith 字符串的实例方法解析

原文链接:https://www.jb51.net/program/317525q14.htm 在 C# 中,StartsWith 是一个字符串的实例方法,用于检查字符串是否以指定的前缀开头。它返回一个布尔值,指示字符串是否以指定的前缀开始。

062、Vue3+TypeScript基础,插槽中使用具名插槽

01、main.js代码如下:// 引入createApp用于创建Vue实例 import {createApp} from vue // 引入App.vue根组件 import App from ./App.vue// 引入emitter用于全局事件总线 // import emitter from @/utils/emitterconst app = createApp(App);// App.vue的根元素id为app app.mou…

ZBlog的数据库表是可以设置前缀-修改ZBlog数据库前缀

ZBlog的数据库表是可以设置前缀,程序安装的时候默认是 zbp_,所以很多同学也就默认用了 zbp_,但是因为某些原因需要修改ZBlog数据的前缀。 例如烽烟前几天搭建了几个演示站,多个演示站都使用的是一个数据库,但是由于之前的演示站数据表也是默认的zbp_,这样的话就与现在存在…

ZBlog后台密码忘记该如何找回

应 网友留言‘ZBlog后台密码忘记该如何找回?’ 每个人都会健忘,而且会忘记某些重要的东西,例如老婆的生日(很严重),银行卡密码(着急),当然也会忘记ZBlog管理员账号的密码。。。那么当我们忘记了后台的登录密码要怎么办呢?不要着急,接下来烽烟就来说下ZBlog找回管理员…

导入数据库提示unknown character set utf8mb4的原因及解决方案

今天尝试往阿里云的一个虚拟机当中导入数据库,然而却出现了“unknown character set utf8mb4”这样的提示。 之所以会产生这个错误,原因在于阿里虚拟机所使用的数据库版本为 5.1 版,此版本并不支持 utf8mb4 字符集。要知道,utf8mb4 字符集是从 5.5 版本开始被采用的,正因如…

061、Vue3+TypeScript基础,插槽中增加图片和控制视频

01、main.js代码如下:// 引入createApp用于创建Vue实例 import {createApp} from vue // 引入App.vue根组件 import App from ./App.vue// 引入emitter用于全局事件总线 // import emitter from @/utils/emitterconst app = createApp(App);// App.vue的根元素id为app app.mou…

如何快速将经纬度坐标解析为地址文本?

GIS数据转换器的"坐标转地址"功能,可以帮助用户将经纬度坐标快速转换为对应的地址文本,广泛用于地图导航、地籍管理、物流追踪、紧急救援等多个领域,提高地理位置信息的实用性和可访问性。下面是详细的使用步骤:方法/步骤1. 数据要求(1)数据格式:软件支持DWG、…

C# 扫描并读取图片中的文字(.NET Core)

本文介绍如何通过C# 程序来扫描并读取图片中的文字,这里以创建一个.Net Core程序为例。下面是具体步骤,供参考。 程序测试环境:Visual Studio版本要求不低于2017 图片扫描工具:Spire.OCR for .NET 图片格式:png(这里的图片格式支持JPG、PNG、GIF、BMP、TIFF等格式) 扫描…

浅谈二分图

定义 二分图,又称二部图,英文名叫 Bipartite graph。 二分图是什么?节点由两个集合组成,且两个集合内部没有边的图。 换言之,存在一种方案,将节点划分成满足以上性质的两个集合。性质如果两个集合中的点分别染成黑色和白色,可以发现二分图中的每一条边都一定是连接一个黑…

STEAM游戏无法使用手柄控制

最近悟空特火,用Win10电脑Steam平台玩游戏想使用以前的手柄,发现无法操作。还以为是游戏或者手柄问题。 在系统的硬件设备那里可以看到手柄已连接,也在网页上测试了手柄各个按键都没有问题。下面是测试网址,实在是太棒了,不用下载第三方测试工具。 手柄测试(Gamepad Teste…

禁止ZBlog输出页面运行信息

使用 ZBlog 的朋友们无一不知,zb 程序通常都会默认在源代码的底部输出诸如页面运行时长等有关网站的运行相关信息。 只要查看一下本站的源代码,就能够清晰地发现其最底部存在类似于<!--63.16 ms, 8 query, 3305kb memory, 0 error-->这样的代码。 此信息虽说不会在正常…

C# 给Word每一页设置不同图片水印

Word中设置水印时,可加载图片设置为水印效果,但通常添加水印效果时,会对所有页面都设置成统一效果,如果需要对每一页或者某个页面设置不同的水印效果,则可以参考本文中的方法。下面,将以C#代码为例,对Word每一页设置不同的图片水印效果作详细介绍。 方法思路 在给Word每…