[36] 棋盘游戏

news/2024/9/12 17:37:46/

//Sample Input
3 3 4
1 2
1 3
2 1
2 2
3 3 4
1 2
1 3
2 1
3 2//Sample Output
Board 1 have 0 important blanks for 2 chessmen.
Board 2 have 3 important blanks for 3 chessmen.

题意:如图。

算法:Hungary

问题:注意数组大小……debug了好久

//以后板子题样例过了但wa了,重点看看是不是数组开小了或者memset位置不对。

思路: 位置的横纵坐标构成二部图,求能放几个棋子就是求最大匹配,枚举尝试去除某一个位置,看最大匹配数是否减少,如果减少,这个位置就是“重要点”。

代码:ac

#include<bits/stdc++.h>
using namespace std;
int con[110][110];
int vis[110];
int link[110];
int n, m;
int find(int x)
{for (int i = 1; i <= m; i++){if (vis[i] == 0 && con[x][i] == 1){vis[i] = 1;if (link[i] == -1 || find(link[i])){link[i] = x;return 1;}}}return 0;
}
int hungary()
{int res = 0;memset(link, -1, sizeof(link));for (int x = 1; x <= n; x++) {memset(vis, 0, sizeof(vis));if (find(x))res++;}return res;
}
int x[10010], y[10010];/*注意这里数组大小是k的范围*/
int main()
{int k;int count = 1;while (scanf("%d%d%d", &n, &m, &k) == 3) {memset(con, 0, sizeof(con));for (int i = 1; i <= k; i++) {scanf("%d%d", &x[i], &y[i]);con[x[i]][y[i]] = 1;}int sum = hungary();int cnt = 0;for (int i = 1; i <= k; i++) {con[x[i]][y[i]] = 0;if (hungary() < sum)cnt++;con[x[i]][y[i]] = 1;}printf("Board %d have %d important blanks for %d chessmen.\n", count++, cnt, sum);}return 0;
}


http://www.ppmy.cn/news/259849.html

相关文章

C++围棋小游戏1.2.1

修改&#xff1a;优化&#xff0c;加入清屏 其实之前想到了这个&#xff0c;但不会用 &#x1f626; /*文件名:围棋小游戏版本:1.2.1作者:zfx1569修改时间:2022.4.10 */ #include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> //…

三子棋游戏,哟西。

今天来分享我的三子棋算法&#xff0c;会对其中的一些地方进行讲解&#xff0c;帮助大家避坑&#xff0c;犹如代码比较粗糙&#xff0c;只是一遍打的&#xff0c;不建议新手模仿。 #include <stdio.h> #include <stdlib.h>#define ROW 3 #define COL 3void menu(v…

C++围棋小游戏1.2.2

/*Name: C围棋小游戏1.2.2Author: zfx1569Date: 2022.05.14 */#include <cstdio> #include <cstdlib> #include <cstring> #include <iostream> // #include<Windows.h> using namespace std; int a1, a2, w, z 0, af 0, bf 0; char a[1001][…

C++围棋小游戏1.1

这是我的第一篇文章 围棋围棋&#xff0c;一方把另一方的棋子完全围起来就能吃掉被围住的棋子。 围棋&#xff08;据我所知&#xff09;有两种&#xff0c;吃子和围地盘&#xff0c;这里展示的是吃子。 谁吃的子多&#xff0c;谁就能获胜。 怎么判断那些棋子是被围起来的呢&…

2020幻影围棋 playChess模块

PlayChess类 PlayChess类用于幻影围棋的行棋&#xff0c;对于平台发过来的每条指令有实现的处理逻辑。 """这是幻影围棋的行棋引擎"""def __init__(self, conditionNone, mctsNone, positionNone):self.condition condition if condition is…

一个让围棋软件自动对弈的工具

银星围棋5的目录下有一个GTool2.exe&#xff0c;利用它可以让两个不同的具有人机对弈功能的围棋软件互相对弈&#xff0c;感觉类似于左右手互搏。:) 步骤简单介绍如下: 1)分别启动两个具有围棋对弈功能的软件&#xff0c;例如MuiltiGo4(这里我采用Gnugo3.7.10做围棋引擎)和…

超级计算机比赛规则,介绍围棋的规则与玩法

介绍围棋的规则与玩法 围棋起源于中国古代&#xff0c;推测起源时间为大约公元前6世纪&#xff0c;是一种策略性二人棋类游戏&#xff0c;那么如何去玩围棋呢&#xff1f;以下是小编为大家搜集整理提供到的介绍围棋的规则与玩法&#xff0c;希望对您有所帮助。欢迎阅读参考学习…

围棋单机版-纵横十九道,迷煞多少人

纵横十九道&#xff0c;迷煞多少人&#xff0c;源于中国古代的围棋&#xff0c;虽历经千年&#xff0c;至今仍令无数人为之疯狂。下面分享几个完全免费的&#xff0c;好玩的单机版 围棋游戏软件 &#xff1a; &#xff11;、思佳围棋&#xff1a;棋力5级左右   思佳围棋采用…

Tom围棋(弈城围棋)运行错误:当前运行的版本是系统无法识别的版本

从http://duiyi.sports.tom.com/service/download.htm 下裁TOM围棋安装后。 管理员级别的用户可以正常运行&#xff0c;但是受限用户就报错&#xff1a;“当前运行的版本是系统无法识别的版本”&#xff0c;然后就退出了。 系统环境为Windows xp sp2 英文版。 解决办法分2大步&…

html游戏围棋源码,C++围棋游戏

【实例简介】 尚未完善的围棋游戏。使用vs2010开发。具有围棋棋盘&#xff0c;棋子界面&#xff0c;已经完成了提子算法。有兴趣的朋友可以与我一起来研究。欢迎大家前来交流 【实例截图】 【核心代码】 MyFirstMFC └── MyFirstMFC ├── MyFirstMFC │ ├── AssiDlg.c…

6.6 线程的回收及内存演示

目录 创建一个线程 pthread_exit pthread——join 线程的回收&#xff1a; 编译错误&#xff1a; 使用线程的分离&#xff1a; 创建一个线程 pthread_create是一个创建线程的函数&#xff0c;它的入参包括&#xff1a; 1. pthread_t *thread&#xff1a;指向线程标识符…

C#绘制围棋棋盘

一、创建项目 转到窗体视图&#xff0c;在pictureBox下方放置一个Button。点击button1&#xff0c;双击&#xff0c;系统自动生成的button1的按键响应函数Button1_Click中添加代码&#xff0c;添加完后如下&#xff1a; namespace WindowsForms1 { public partial class For…

网络围棋单机版

我在开发工作之余写了一个网络围棋,有单机版和网络版.现在把单机版上传给大家使用.欢迎多提意见,并帮我完善其中的围棋类,比如增加下完棋后如何算胜负. 请到我上传的资源去下载. http://download.csdn.net/user/whwqs 下棋去,可能需要安装svgviewer : http://groups.google…

电脑围棋

1.0 概述 本文旨在向读者介绍电脑围棋领域的状况及 Internet 上的相关资源。 为照顾尚不熟悉围棋的读者&#xff0c;第2部分介绍了围棋的基本常识和规则&#xff0c;熟悉这些的读者可以跳过它&#xff0c;或在必要时参考。 第6部分将告诉读者&#xff0c;由于各自的特点&a…

围棋棋盘的绘制

一、设计界面如下 按钮是一个pictureBox&#xff0c;用于控制图形绘制的开始。 二、本次我们绘制的围棋棋盘是黄色背景的19路围棋棋盘&#xff0c;我们将起始坐标定在&#xff08;20,20&#xff09;点处&#xff0c;并画一个高度及宽度均为270的棋盘。 using System; using Sys…

C#绘制简单围棋棋盘

一.创建工程项目 1.创建新项目 2.点击左侧隐藏工具栏添加picture box 和 button 两个工具到窗体页面如下图所示&#xff1a; 二.编写代码 1.双击button为按钮添加点击响应&#xff1b;添加代码如下&#xff1a; namespace WindowsForms1 { public partial class Form1 : For…

一步一步实现一个完整的围棋游戏

一、画棋盘 可以理解为简单的字符画技巧&#xff1a;第一行、中间与最后一行不同&#xff1b;对于每一行&#xff0c;第一列&#xff0c;中间与最后一列不同。 画星位是有一点技巧的&#xff0c;重点理解这个公式的含义&#xff1a; ((i-4)%60 && (j-4)%60) #include…

QQ围棋棋谱

腾讯围棋分享出来的链接&#xff1a; https://huanle.qq.com/act/a20170110wq/index-photo.html?type1&chess02000022001100000002020020221121000000002202022122112200002200000222111102000200020020222211200022020202211111200000122222211010120000011111210120221…

OpenStack部署(二)

OpenStack部署 4. Glance4.1 创建Glance数据库并授权4.2 获得admin凭证4.3 创建glance用户并设置密码4.4 添加 admin 角色到 glance 用户和 service 项目上4.5 创建glance服务实体4.6 创建镜像服务的 API 端点4.7 yum安装Glance服务4.8 初始化镜像服务的数据库4.9 启动镜像服务…

员工工作服穿戴AI识别算法 yolov5

员工工作服穿戴AI识别算法是基于yolov5python网络模型人工智能技术&#xff0c;员工工作服穿戴AI识别算法对现场人员的工作服穿戴情况进行实时监控&#xff0c;并对违规情况将自动发出警报。我们选择当下YOLO卷积神经网络YOLOv5来进行火焰识别检测。现版本的YOLOv5每个图像的推…