[BZOJ]2437 [NOI2011] 兔兔与蛋蛋 二分图博弈

量子编程专业权威教程(十四):Shor 算法 本文系统阐述了Shor算法的原理与实现,重点解析了将大数分解问题转化为周期寻找问题的数论基础,以及模幂运算量子电路的设计方法。通过以N=15为例的完整算法流程演示,展示了量子计算在因数分解问题上的指数级优势。文章详细拆解了受控幺正操作构建、量子傅里叶变换应用等关键技术环节,并提供了可复现的Qiskit代码实现。同时指出了当前量子硬件在比特数、相干时间和错误率等方面面临的工程挑战,这些限制使得分解大整数仍需长期技术突破。该研究为理解量子计算优势提供了典型范例,对后量子密码学发展具有重要启示意义。 阅读详情

2437: [Noi2011]兔兔与蛋蛋

Time Limit: 10 Sec   Memory Limit: 128 MB
Submit: 771   Solved: 493
[ Submit][ Status][ Discuss]

Description

Input

输入的第一行包含两个正整数 n、m。 
接下来 n行描述初始棋盘。其中第i 行包含 m个字符,每个字符都是大写英文字母"X"、大写英文字母"O"或点号"."之一,分别表示对应的棋盘格中有黑色棋子、有白色棋子和没有棋子。其中点号"."恰好出现一次。 
接下来一行包含一个整数 k(1≤k≤1000) ,表示兔兔和蛋蛋各进行了k次操作。 
接下来 2k行描述一局游戏的过程。其中第 2i – 1行是兔兔的第 i 次操作(编号为i的操作) ,第2i行是蛋蛋的第i次操作。每个操作使用两个整数x,y来描述,表示将第x行第y列中的棋子移进空格中。 
输入保证整个棋盘中只有一个格子没有棋子, 游戏过程中兔兔和蛋蛋的每个操作都是合法的,且最后蛋蛋获胜。

Output

输出文件的第一行包含一个整数r,表示兔兔犯错误的总次数。 
接下来r 行按递增的顺序给出兔兔“犯错误”的操作编号。其中第 i 行包含一个整数ai表示兔兔第i 个犯错误的操作是他在游戏中的第 ai次操作。 
1 ≤n≤ 40, 1 ≤m≤ 40

Sample Input

样例一:
1 6
XO.OXO
1
1 2
1 1
样例二:
3 3
XOX
O.O
XOX
4
2 3
1 3
1 2
1 1
2 1
3 1
3 2
3 3
样例三:
4 4
OOXX
OXXO
OO.O
XXXO
2
3 2
2 2
1 2
1 3

Sample Output

样例一:
1
1
样例二:
0
样例三:
2
1
2

样例1对应图一中的游戏过程
样例2对应图三中的游戏过程

HINT

Source

[ Submit][ Status][ Discuss]


HOME Back

比BZOJ1443简单的二分图博弈...格子的移动其实就是一次白一次黑, 说白了就是在黑白格子上移动. 黑白染色后, 同样的, 非必需点后手必胜.

#include<stdio.h>
const int maxn = 2100;
int id[51][51], h[maxn],now[maxn], num, cnt, tim, match[maxn], n, m, x, y, q, qq[maxn], ans;
bool del[maxn], chec[maxn], mark[51][51];
inline int abs(int x){ return (x > 0) ? x : -x;}
struct edge{ int nxt, v;}e[maxn * 4];
inline void add(int u, int v){ e[++num].v = v, e[num].nxt = h[u], h[u] = num;}
bool find(int u){
	if(del[u]) return false;
	for(int i = h[u]; i; i = e[i].nxt)
		if(now[e[i].v] != tim){
			int v = e[i].v;
			now[v] = tim;
			if(del[v]) continue;
			if(!match[v] || find(match[v])){
				match[v] = u, match[u] = v;
				return true;
			}
		}
	return false;
}
int main(){
	scanf("%d%d", &n, &m);
	char ch;
	for(int i = 1; i <= n; ++i){
		getchar();
		for(int j = 1; j <= m; ++j){
			ch = getchar();
			if(ch == 'X') mark[i][j] = true;
			else if(ch == '.') x = i, y = j, mark[i][j] = true; 
		}
	}
	for(int i = 1; i <= n; ++i)
		for(int j = 1; j <= m; ++j)
			if(mark[i][j] && ! ((abs(x - i) + abs(y - j)) & 1) || !mark[i][j] && (abs(x - i) + abs(y - j)) & 1)
				id[i][j] = ++cnt;
	for(int i = 1; i <= n; ++i)  
		for(int j = 1; j <= m; ++j)
			if (id[i][j]){
				if (i < n && id[i + 1][j]) add(id[i][j], id[i + 1][j]);
				if (i > 1 && id[i - 1][j]) add(id[i][j], id[i - 1][j]);
				if (j < m && id[i][j + 1]) add(id[i][j], id[i][j + 1]);
				if (j > 1 && id[i][j - 1]) add(id[i][j], id[i][j - 1]);  
      		}
	for(int i = 1; i <= cnt; ++i)
		if(!match[i]) tim++, find(i);
	scanf("%d", &q); q <<= 1;
	for(int i = 1; i <= q; ++i){
		del[id[x][y]] = true;
		if(match[id[x][y]]){
			int ma = match[id[x][y]];
			match[ma] = 0, match[id[x][y]] = 0;
			tim++;
			chec[i] = !find(ma);
		}
		else chec[i] = false;
		scanf("%d%d", &x, &y);
	}
	for(int i = 1; i <= q; i += 2)  
    	if(chec[i] && chec[i + 1]) qq[++ans] = (i + 1)/2;  
	printf("%d\n",ans);
	for(int i = 1; i <= ans; ++i)  
		printf("%d\n", qq[i]);
    return 0;  
}


Unreal 从入门到精通之VR常用操作 本文总结了使用Unreal5开发VR项目时遇到的常见问题及其解决方案。首先,介绍了如何通过VRPawn的TryTeleport函数设置玩家视角位置,确保头显移动时安全区域的正确传送。其次,详细说明了如何在Unreal中播放视频,包括导入视频文件、创建媒体播放器和媒体纹理,并将其应用到3D物体上。接着,讲解了如何播放VR全景视频,建议使用MediaPlate媒体板并调整几何体为球体。最后,讨论了如何手动打开和关闭VR模式,以便在PC模式和头显模式之间切换。这些方法为VR开发提供了实用的技术指导。 阅读详情

相关推荐

拼多多爬虫实战:逆向sign与anti_content动态参数解析

现代电商爬虫已远超基础HTTP请求范畴,其核心在于理解服务端如何通过动态签名(sign)、设备指纹、行为验证等多维机制定义‘合法请求’。拼多多作为典型代表,将价格、销量、评价等关键数据完全剥离HTML,转由强校验API返回,依赖HMAC-SHA256嵌套签名、anti_content前端加密载荷及滑动验证token闭环。这类机制本质上是客户端环境可信度与请求上下文一致性的实时博弈,技术价值在于保障数据安全与业务风控。典型应用场景包括竞品价格监控、销量趋势分析、评价情感挖掘等需高保真数据的商业分析任务。本文聚

weixin_29741447的博客 831

【博弈+二分图匹配】[NOI2011]兔兔与蛋蛋游戏

题目描述 Description Input输入的第一行包含两个正整数 n、m。 接下来 n行描述初始棋盘。其中第i 行包含 m个字符,每个字符都是大写英文字母"X"、大写英文字母"O"或点号"."之一,分别表示对应的棋盘格中有黑色棋子、有白色棋子和没有棋子。其中点号"."恰好出现一次。 接下来一行包含一个整数 k(1≤k≤1000) ,表示兔兔和蛋蛋各进行了k次操...

weixin_30951231的博客 246

用STM32F103单片机控制电调制动无刷电机

用电调控制无刷电机制作遥控飞艇 蓝牙控制 调控电调 无刷电机 用电调控制无刷电机制作遥控飞艇 代码区 mian.c #include "delay.h" #include "sys.h" #include "usart.h" #include "usart3.h" #include "timer.h" #include "led.h" #include "key.h" int main(v...

子非鱼 的博客 2万+

bzoj2437 [Noi2011]兔兔与蛋蛋

题解:我们将棋盘分成黑白格子(相邻格子颜色不同),将空格染成黑色,那么我们可以知道X为合法棋子当且仅当X在黑色格子,而O为合法棋子当且仅当O在白色格子。 相邻合法棋子(空格也为合法)连边,则我们得到无向图,而它也是二部图,当空格一定是在最大匹配中时,则先手必胜;否则先手必败。若不一定在,则空格可能在偶数条交错路,或者有点可以代替空格(此时空格可不在最大匹配中),那么此时后手总有办法走到先手所在的

MustImproved的博客 751

【论文阅读】LIME:Low-light Image Enhancement via Illumination Map Estimation(笔记最全篇)

文章目录AbstractIntroductionContributionMethodSpeed-up Method(1):ALM子问题 T子问题 G子问题 Z和μ\muμSpeed-up Method(2):权重变量实验conclusion 今天要整理的一篇论文是使用传统的方法解决低照度的问题,Guo等人于2016年发表在IEEE上,论文《LIME:Low-light Image Enhance...

florrie 2万+

基于Java的高校校园点餐系统

本文介绍了一个基于Java技术开发的高校校园点餐系统,该系统以B/S结构为基础,采用MySQL作为数据库,实现了一个高效、便捷的在线点餐平台。系统主要面向三类用户:管理员、用户和食堂工作人员,提供包括用户管理、食堂管理、菜单管理、订单管理等在内的多项功能。通过系统的具体测试,验证了其可行性和有效性,为高校师生提供了一个科学化、系统化的点餐服务。高校校园点餐系统的开发和实现,不仅提高了校园餐饮服务的效率和质量,也为师生提供了一个更加便捷的点餐体验。

a632341031的博客 837

[BZOJ 2437][NOI 2011]兔兔与蛋蛋(二分图匹配)

题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=2437思路很容易发现整个游戏过程就是两个人依次移动棋盘上的唯一的那个空格。对整个棋盘进行黑白染色,假设空格是黑色格子(如下图中的被蓝色框出的’X’格子),并把空格看作’X’棋子,可以发现空格的移动轨迹是由黑格子上的’X’、白格子上的’O’交错的,如下图 我们定义黑白染色后,起点空格为黑格子

某沙茶的OI代码库 2090

树莓派 Raspberry Pi 使用 YOLOv8 YOLOv10 YOLOv11进行目标检测及推理加速,Run YOLOv8 YOLOv10 YOLOv11 on Raspberry Pi

libcamera 是 linux 新增加用于访问 camera 的 API。树莓派参与了 libcamera 的开发,并且在新的摄像头软件中开始从依赖于固件的摄像头图像处理管道(Image processing pipeline, ISP)迁移到更加开放的 libcamera。当然这块用USB 摄像头应该也是可以的。

shiter编写程序的艺术 5563

bzoj 2437 [Noi2011]兔兔与蛋蛋 [二分图匹配]

描述这些天,兔兔和蛋蛋喜欢上了一种新的棋类游戏。 这个游戏是在一个 n 行 m 列的棋盘上进行的。游戏开始之前,棋盘上有一 个格子是空的,其它的格子中都放置了一枚棋子,棋子或者是黑色,或者是白色。 每一局游戏总是兔兔先操作,之后双方轮流操作,具体操作为: 兔兔每次操作时,选择一枚与空格相邻的白色棋子,将它移进空格。 蛋蛋每次操作时,选择一枚与空格相邻的黑色棋子,将它移进空格。 第一个不能按照规则操作

Shion的专栏 1832

基于多传感器融合的智身四足机器狗楼梯环境SLAM系统设计与实现

本文设计了一种基于多传感器融合的四足机器狗楼梯环境SLAM系统。系统采用Jetson Orin NX为主控制器,集成RealSense D435i深度相机和Livox Mid360激光雷达,在ROS2框架下实现平面定位精度<5cm、楼梯环境下导航不漂移的目标。通过多层次传感器融合策略、运动学约束优化和状态切换机制,解决了楼梯环境下的定位累积误差问题,实现了平面与楼梯环境的自动识别切换及精度复位功能。硬件设计注重传感器布局优化和精确标定,软件架构采用分层设计,确保实时性能。该系统为四足机器人在复杂地形中

huanghm88的专栏 238

122、Android Camera HAL3 框架:Request、Result、Metadata 的异步管道模型

本文深入剖析了Android Camera HAL3框架中的异步管道模型,围绕Request、Result和Metadata三个核心要素展开。作者通过实际案例(黑屏闪退问题)切入,揭示了异步模型中常见的帧序错乱陷阱。文章详细阐释了三个角色的交互机制,指出HAL3采用生产者-消费者模式的关键特征:Request与Result一一对应但不保证顺序。针对开发实践,总结了三个必须加锁的场景和回调函数的锁使用禁忌,并给出解决帧序问题的具体方案(独立帧号生成器)。最后提出五项经验性建议,强调异步模型带来的灵活性与复杂性

sundong_81的博客 211

BZOJ2437: [Noi2011]兔兔与蛋蛋

1443的强化版,黑白染色后,节点颜色若和染色不同,因为永远不会到达,可以视为障碍,每次移动空格到一个位置,那个位置的颜色交换到空格处,也变成障碍,所以可视为不能重复经过一点,判断每次操作前是不是必胜态只需判所处的点是否是必经点#include<set> #include<map> #include<deque> #include<queue> #include<stack> #include<cm

L_0_Forever_LF的专栏 484

Rockchip eMMC寿命监控:SMART信息读取与预防性维护

擦写计数坏块数量温度使用时间。

小灰灰的博客 760

【bzoj2437】【NOI2011】【兔兔与蛋蛋】【二分图博弈】

Description Input 输入的第一行包含两个正整数 n、m。  接下来 n行描述初始棋盘。其中第i 行包含 m个字符,每个字符都是大写英文字母"X"、大写英文字母"O"或点号"."之一,分别表示对应的棋盘格中有黑色棋子、有白色棋子和没有棋子。其中点号"."恰好出现一次。  接下来一行包含一个整数 k(1≤k≤1000) ,表示兔兔和蛋蛋各进行了k次操作。  接

sunshinezff的专栏 835

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

bzoj2437: [Noi2011]兔兔与蛋蛋 二分图博弈

题目链接:戳这里 2437: [Noi2011]兔兔与蛋蛋 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 788  Solved: 500 [Submit][Status][Discuss] Description Input 输入的第一行包含两个正整数 n、m。  接下来 n行描述初始棋盘。其中第i 行包

Twin Automata的博客 447

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【BZOJ 2437】 2437: [Noi2011]兔兔与蛋蛋 (博弈+二分图匹配**)

未经博主同意不得转载 2437: [Noi2011]兔兔与蛋蛋 Time Limit:10 SecMemory Limit:128 MBSubmit:693Solved:442 Description Input 输入的第一行包含两个正整数 n、m。接下来 n行描述初始棋盘。其中第i 行包含 m个字符,每个字符都是...

weixin_30408739的博客 102

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

bzoj 2437: [Noi2011]兔兔与蛋蛋 博弈论+二分图匹配

题意 n,m 分析 如果相邻格子之间有边,那么这就是一个二分图。不妨把起点也看成黑色,那么显然每个点每条边只能被走一次,这就变成了一个二分图博弈问题。 当起点必然是最大匹配中的边则先手必胜。因为先手可以一直沿着匹配边走,如果后手走到了某个不匹配点,则与起点必然是匹配点不符,故先手必胜。 若起点可能不是最大匹配中的边,则后手必胜。因为无论先手怎么走都会走到一个匹配点,后手可以沿着匹

beginend 430

bzoj 2437 [Noi2011]兔兔与蛋蛋 二分图博弈

题面 题目传送门 解法 不妨把问题转化成空格的移动,将一开始空格的位置变成黑色 那么,真实颜色和后来染的颜色不同的就一定不会经过 然后就变成了一个二分图博弈问题了 考虑一下什么时候先手必胜: 就是起点一定在二分图的最大匹配上的时候 否则后手必胜 先手走错的情况满足在他走之前先手必胜,走之后先手还是必胜 匈牙利算法即可 代码 #include <bits/stdc++.h> #defin...

weixin_30263277的博客 120

【BZOJ2437】【NOI2011】兔兔与蛋蛋(博弈论,二分图匹配)

【BZOJ2437】【NOI2011】兔兔与蛋蛋(博弈论,二分图匹配) 题面 BZOJ 题解 考虑一下暴力吧。 对于每个状态,无非就是要考虑它是否是必胜状态 这个直接用\(dfs\)爆搜即可。 这样子对于每一次操作,考虑兔兔操作后的状态是否是必胜状态 如果这个状态是必胜状态,并且蛋蛋操作完后的状态是(兔兔的)必败状态 那么这就是一个“犯错误”的操作。 这样暴力可以拿到\(75pts\) #incl...

weixin_30425949的博客 136

[BZOJ]2437: [Noi2011]兔兔与蛋蛋 二分图匹配+博弈

题解: 神题……%%%FYC。首先我们将问题转化为:空格先走一个白点再走一个黑点……谁不能走谁输。由于先走白点,所以可以将起点的空格看做一个黑点。我们又可以将这个图看做二分图,一黑一白这样走可以看做是二分图匹配里面找增广路的过程,因为增广路最后的终点在白点,所以对于任意一种情况,只需要找到一条从起点出发的增广路,就是必胜。对于任意情况都能找到,当且仅当起点一定在二分图的最大匹配中。那么怎么找

TYB的博客 375

bzoj 2437: [Noi2011]兔兔与蛋蛋 (二分图博弈+dinic)

题目描述传送门题目大意:给出一个 n 行 m 列的棋盘,棋盘上有一 个格子是空的,其它的格子中都放置了一枚棋子,棋子或者是黑色,或者是白色。 每一局游戏总是兔兔先操作,之后双方轮流操作,具体操作为: 兔兔每次操作时,选择一枚与空格相邻的白色棋子,将它移进空格。 蛋蛋每次操作时,选择一枚与空格相邻的黑色棋子,将它移进空格。 第一个不能按照规则操作的人输掉游戏。题解二分图博弈 刚开始不觉的是二分图博弈

clover_hxy的博客 589

[BZOJ2437]-[Noi2011]兔兔与蛋蛋-博弈+二分图必匹配点

说在前面 终于把这个史前巨坑填了emmmm 题目 BZOJ24373传送门 看题可进传送门 解法 首先是个网格图 根据我们做 BZOJ1443 以及 BZOJ2463 的经验 我们把相邻的 黑白棋子 连边,然后跑一个最大匹配 (对于兔兔)可以发现,如果空格旁边有一个非匹配白棋子,那么挪动这个棋子之后,蛋蛋只能寻找非匹配边,然后挪动一个黑棋子。由于是最大匹配,这个黑棋子...

泉華子的OI足迹 509

BZOJ2437 [Noi2011]兔兔与蛋蛋 【博弈论 + 二分图匹配】

题目链接 BZOJ2437 题解 和JSOI2014很像 只不过这题动态删点 如果我们把空位置看做\(X\)的话,就会发现我们走的路径是一个\(OX\)交错的路径 然后将图二分染色,当前点必胜,当且仅当当前点必须作为最大匹配的匹配点 移动相当于删点,删点的话只需打个标记即可 判断当前点是不是必选,只需尝试更改当前点匹配点的匹配点即可 #include<algorithm> #inclu...

weixin_30412167的博客 126

【bzoj2437】[Noi2011]兔兔与蛋蛋 二分图最大匹配+博弈论

Description Input 输入的第一行包含两个正整数 n、m。 接下来 n行描述初始棋盘。其中第i 行包含 m个字符,每个字符都是大写英文字母"X"、大写英文字母"O"或点号"."之一,分别表示对应的棋盘格中有黑色棋子、有白色棋子和没有棋子。其中点号"."恰好出现一次。 接下来一行包含一个整数 k(1≤k≤1000) ,表示兔兔和蛋蛋各进行了k次操作。 接下来 2k行描述一局游戏的过程...

weixin_30338481的博客 154

[二分图博弈] BZOJ 1443 [JSOI2009]游戏Game & BZOJ 2437 [Noi2011]兔兔与蛋蛋

二分图博弈考虑这样一类博弈问题 博弈状态可分为两类 即状态空间可分为两个集合 对应二分图X集和Y集 任意合法的决策使状态从一类跳转到另一类 可以用二分图描述 不可以转移至已访问的状态 无法转移者判负。 问题转化从二分图指定起点开始轮流沿着边移动 不可重复访问点 无法移动判负。不妨设起点s∈Xs\in X 考虑该二分图的某个最大匹配 若ss不属于某个最大匹配 则先手所转移到的点y∈Yy\in Y一定

雯舞 517

BZOJ2437 NOI2011兔兔与蛋蛋(二分图匹配+博弈)

  首先将棋盘黑白染色,不妨令空格处为黑色。那么移动奇数次后空格一定处于白色格子,偶数次后空格一定处于黑色格子。所以若有某个格子的棋子颜色与棋盘颜色不同,这个棋子就是没有用的。并且空格与某棋子交换后,棋子所在的格子改变使得该棋子与棋盘颜色不同,那么该棋子也会变为无用棋子。那么问题变为空格在棋盘上黑白格子交替移动,棋盘上有障碍物,走过的格子不能再走,不能移动者输。   显然这是一个二分图博弈。如果...

weixin_30810239的博客 130
上一篇: [BZOJ]2436 [NOI2011] Noi嘉年华 DP
下一篇: [UVA]10529 Dumb Bones 期望 + 区间DP DP函数单调性优化
MaxMercer
博客等级 码龄10年 55粉丝 261原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值