QDU-帅气的HYC与N皇后(最大独立集)

【AI方案集】个人记忆库型AI智能体终身伴侣方案.docx 这套AI技术方案不走“先堆概念再硬套场景”的老路,而是以业务痛点为锚点,把机器视觉识别、预测性分析、大模型知识赋能等能力拆解成轻量化可落地的功能模块,直接嵌入生产运营的关键环节,既能快速落地见效,又能通过持续的数据迭代逐步放大价值,帮企业在不盲目新增硬件投入的前提下,稳步完成智能化升级,实实在在把AI变成能降本、提效、控风险的生产工具。 立即下载

帅气的HYC与N皇后

发布时间: 2015年11月1日 16:34   最后更新: 2015年11月1日 16:35   时间限制: 5000ms   内存限制: 512M

你一定听说过N皇后问题吧。

但是帅气的HYC已经开始厌倦这古老的题目了。所以他设计了新的问题——N骑士问题。

这个问题跟N皇后很类似,同样是在国际象棋的棋盘上,只是把皇后(Queen)换成了 骑士(Knight ♞),就相当于中国象棋里的马了(所以说还是叫马好了~),不过要特别注意的一点是,国际象棋里的马是不会被绊马腿的(如果你不知道我在说什么,请忽略这句,并看下一段,这并不影响你解决这个问题)。

HYC会给出一个n行m列棋盘,你需要往棋盘上尽量放置更多的Knight,并保证他们无法相互攻击。

下图展示了国际象棋中马(Knight)的攻击范围:

2=.png

(黑色的马可以攻击它周围任何一个黑点表示的位置,而白色的马可以攻击任意白点标示的位置)

而且为了增加难度,HYC会提前在棋盘上随意放置k个马(保证预先放置的马无法互相攻击)

你要计算并输出最终棋盘上可以共存的马的个数(也包含预先放置的个数)

每次测试仅有一组数据,第一行包含三个正整数(用空格隔开) n m k分别表示棋盘的行数和列数,k表示预先放置的马的数量。接下来k行每行包含两个正整数xi, yi表示这x个棋子放在第xi行yi列(xi, yi从1开始编号,见题目描述中的图片上标示的坐标)

数据范围: m,n,k,xi,yi均为正整数。m, n均不大于60 且 n×m不大于2^6,k不大于60, xi<=n, yi<=m

只有一行,一个整数按照上边的规则棋盘上最多可以放置的马的个数

 复制
1 6 0
6
 复制
2 2 0
4
 复制
3 3 0
5
 复制
1 1 1
1 1
1
 复制
5 1 1
1 1
5

思路:每两个不能同时放的点构成一条边,然后求解最大独立集就可以解决,但题目还会提前放置k个点,所以我们可以提前处理这k个点所造成的不能放置的点,将它们从二分图中去除,以及相应的连边,然后再拆点求解新图的最大匹配,所以最终答案就是 新图的最大独立集数+k = 所有点数-最大匹配数/2-去除的数。


代码:

#include <iostream>
#include <string.h>
#include <cstdio>
#include <vector>
using namespace std;
const int maxn = 70;
int nt[8][2] = {2, 1, 2, -1, 1, 2, -1, 2, -2, 1, -2, -1, 1, -2, -1, -2};
int m, n, k;
int use[maxn][maxn];
int match[maxn], vis[maxn];
vector<int> G[maxn];
int dfs(int cur)
{
	int len = G[cur].size();
	for(int i = 0; i < len; ++i)
	{
		int v = G[cur][i];
		if(vis[v]) continue;
		vis[v] = 1;
		if(match[v] == -1 || dfs(match[v]))
		{
			match[v] = cur;
			return 1;
		}
	}
	return 0;
}
int main()
{
	int ans, bad, x, y;
	while(~scanf("%d %d %d", &n, &m, &k))
	{
		ans = 0, bad = 0;
		memset(use, 0, sizeof use);
		memset(match, -1, sizeof match);
		for(int i = 1; i <= k; ++i)
		{
			scanf("%d %d", &x, &y);
			use[x][y] = 1;
			for(int j = 0; j < 8; ++j)
			{
				int tx = x + nt[j][0];
				int ty = y + nt[j][1];
				if(tx < 1 || tx > n || ty < 1 || ty > m || use[tx][ty]) continue;
				use[tx][ty] = 1; ++bad;
			}
		}
		for(int i = 1; i <= n; ++i)
		for(int j = 1; j <= m; ++j)
		{
			if(use[i][j]) continue;
			G[(i-1)*m+j].clear();
			for(int k = 0; k < 8; ++k)
			{
				int tx = i + nt[k][0];
				int ty = j + nt[k][1];
				if(tx < 1 || tx > n || ty < 1 || ty > m || use[tx][ty]) continue;
				G[(i-1)*m+j].push_back((tx-1)*m+ty);
			}
		}
		for(int i = 1; i <= n; ++i)
		for(int j = 1; j <= m; ++j)
		{
			if(use[i][j]) continue;
			memset(vis, 0, sizeof vis);
			if(dfs((i-1)*m+j)) ++ans;
		}
		printf("%d\n", n*m-bad-ans/2);
	}
	return 0;
}


继续加油~

ESP32-S3 USB下载模式深度解析:从UART0到TinyUSB的硬件设计与避坑指南 本文深度解析ESP32-S3的三种USB下载模式:UART0、Hardware CDC和基于TinyUSB的USB-OTG CDC。详细探讨各模式的硬件设计要点、电平异常问题、eFuse配置及避坑指南,帮助开发者优化设计,提升量产效率和系统稳定性。 阅读详情

相关推荐

【星火】海思HI3516C开发板实战:基于LVGL与MPP库的行车记录仪/电子显微镜方案

本文详细介绍了基于海思HI3516CV500开发板,结合LVGL图形库与海思MPP媒体处理平台,实现行车记录仪与电子显微镜方案的完整实战过程。内容涵盖从系统环境搭建、驱动配置到应用开发的全流程,重点解析了MPP视频流处理管道与LVGUI界面协同工作的核心机制,为嵌入式音视频开发提供了可复用的参考方案。

weixin_42126677的博客 163

QDUOJ 29 帅气的HYC与N皇后(最大独立集)

题目地址:点击打开链接 思路:暴搜肯定是会T的,每个位置和他一步能到的八个地方存在互斥关系,所以可以看作一个棋盘中有许许多多的互斥关系,互斥关系的两个点不能同时有棋子,所以可以将 互斥关系作边,从而问题转换成了求最大独立集。(最大独立集=定点数 - 最大匹配) 独立集: 在所有的顶点中选取一些顶点,这些顶点两两之间没有连线,这些点就叫独立集 最大独立集:

CillyB的博客 694

【Python 实战基础】如何绘制热力图来模拟绘制北京景区热度图

Python如何绘制热力图来模拟绘制北京景区热度图 文件读写 基础语法 字符串处理 文件生成 数据构建

菜鸟实战的博客 3402

海龟图&骑士问题&八皇后问题

总算是把上学期实验欠下的三道选做尝试了一下,小白摸爬滚打,不过欣慰的是画上了一个句号。 海龟图 【题目描述】 龟图logo语言在个人计算机用户中非常流行,该语言形成了龟图的概念。假设有个机器海龟,通过c++程序控制在房子中移动。在两个方向之一打开画笔,即向上或向下。画笔向下时,海龟跟踪移动的形状并留下移动的路径,画笔向上时,海龟自由移动,不写下任何东西。在这个问题中,要模拟海龟的操作和生成计算...

Catherine_he_ye的博客 1124

常见的电容有哪些

电容在电路板中非常常见,类别纷繁复杂,本文化繁为简,主要介绍下常见电容。

qq_40170041的博客 768

光学设计进阶:Zemax中的坐标断点与离轴系统优化

本文深入解析了Zemax中坐标断点的核心原理与实战应用,它是实现离轴光学系统设计的关键。文章通过比喻和实例,详细阐述了如何利用坐标断点作为“方向盘”来精确控制光学元件的偏心和倾斜,实现“前断后接”的局部坐标系变换,从而构建并优化无中心遮拦的离轴反射系统,避免光线失控。

3a9bq4r8t2y的博客 527

QDU 帅气的HYC求乘积

帅气的HYC求乘积 发布时间: 2015年11月1日 17:02   最后更新: 2015年11月1日 18:38   时间限制: 1000ms   内存限制: 128M 描述 帅气的HYC饿了,于是他定了外卖,但是去拿外卖时却忘了带钱,这可怎么办?于是外卖小哥对他说,我也不为难你,我给你出个题,你要做出来就送你一份免费午餐。题目是这样的: 设有一个长度N的数字串,要求你使

yo_bc的博客 385

保姆级教程:用Python+OpenCV实现相移法与格雷码三维重建(从生成条纹到点云生成)

本文详细介绍了使用Python和OpenCV实现相移法与格雷码三维重建的全流程,从条纹生成到点云计算。通过结构光技术,结合相移法和格雷码,实现高精度的三维重建,适用于无纹理物体表面的密集对应点生成。教程包含环境搭建、条纹生成、相位计算、三维点云重建及常见问题排查,适合计算机视觉开发者和研究人员。

weixin_33443333的博客 351

此题请去QDU找帅气的HYC与露珠

Hey, welcome to HDOJ(Hangzhou Dianzi University Online Judge). In this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + ... + n. Input The input will consist of a series of integers

海绵的博客 302

泛微Ecology流程数据表结构解析:workflow_requestbase和workflow_currentoperator到底怎么关联查询?

本文深入解析泛微Ecology系统中workflow_requestbase和workflow_currentoperator表的结构与关联机制,提供SQL查询语句示例,帮助开发者高效查询流程数据。涵盖待办事项、已办事项、办结事项和流程监控等典型场景,并分享性能优化技巧和常见问题排查指南。

weixin_33738555的博客 815

线性代数-第24篇:线性代数在控制系统中的核心应用

线性代数通过状态空间建模、矩阵分解与优化算法,为控制系统提供了从理论分析到工程实现的完整框架。从传统PID控制到现代智能控制,其应用贯穿系统设计、分析与优化的全流程。未来,随着多智能体协同控制、量子控制系统等前沿领域的发展,线性代数将在高维矩阵计算、分布式优化等方向持续创新,为复杂控制系统的突破提供核心支撑。如果对线性代数在控制系统中的应用细节有疑问,欢迎在评论区留言!

无 424

最小路径覆盖问题求解及与最小边覆盖的区别

Air Raid + Treasure Exploration 最小边覆盖: 最小路径覆盖: 有向无环图->二分图 传递闭包

yo_bc的博客 4875

AgentScope Java 2.0 最佳实践:9 个完整示例手把手带你开发 Java‑Agent

本文基于9 个完整示例,深入剖析从基础对话(BasicChatExample)、工具调用(@Tool 注解)、结构化输出(POJO Schema)、ToolGroup 自主管理、MCP 外部工具集成、Hook 生命周期监控、Spring Boot SSE 流式 Web、JsonSession 会话持久化到中断恢复的全链路实战教程。

program哲学 1649

最小点覆盖集之例题

POJ-3041 Asteroids 题意: 给一个N*N的矩阵,一些星球位于一些点上,要求消除所有星球,每次操作可消除一行或一列的星球,求最少要几次。 思路: 以行和列为点,星球所在行和列的关系建边,建完图之后就会发现求最小点覆盖集。 代码1: #include #include using namespace std; const int maxn = 505; int G

yo_bc的博客 1978

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

HDU-3829 Cat VS Dog(最大独立集及对题目的分析)

The zoo have N cats and M dogs, today there are P children visiting the zoo, each child has a like-animal and a dislike-animal, if the child's like-animal is a cat, then his/hers dislike-animal must be a dog, and vice versa. Now the zoo administrator is r

yo_bc的博客 830

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

二分图的概念汇总

二分图概念汇总-- 二分图:是这样一个图,其顶点可分为两集合X和Y,所有的边关联的两顶点中,恰一个属于X,另一个属于Y。同一集合的结点不相邻。 匹配:图的一个匹配是一些边的集合,任意两条边没有公共点。 最大匹配:包含边数最多的匹配。 (匈牙利算法) 完美匹配:所有点都在匹配边上的匹配。 完备匹配:在二分图中,X集合中的所有点都有对应的匹配或者是Y集合中的所有点都有

yo_bc的博客 736

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

KM算法模板(二分图的最大权匹配)

又掌握了一个模板~~~其实是差不多理解了,比较菜.. 二次元霸主写博客就是强啊: http://www.cnblogs.com/wenruo/p/5264235.html 但...不敢想象博主是男是女。 依旧改成自己喜欢的模板格式~ //模板HDU-2255 #include #include #include #include using namespace std;

yo_bc的博客 644

无权二分图的最大匹配(匈牙利算法)

二分图的最大匹配——匈牙利算法,先来了解一下二分图,顾名思义,二分图是可以将所有点分成两个部分的图,怎么判断呢,可以这么来,我们暂且将红色和蓝色看成两种相反的颜色,将图中的某一个顶点涂为红色,然后将和它相连的顶点涂成黑色的颜色,即与它本身相反的颜色,继续如此,如果按照这种方法可以将全部顶点都着色的话,那么该图就是一个二分图。 二分图的最大匹配,其实就是不断寻找增广路,增广路本质是一条路径上的

yo_bc的博客 575

POJ-1466 Girls and Boys(最大独立集)

n the second year of the university somebody started a study on the romantic relations between the students. The relation "romantically involved" is defined between one girl and one boy. For the study reasons it is necessary to find out the maximum set sat

yo_bc的博客 554

Codeforces-557D Vitaly and Cycle(二分图染色)

After Vitaly was expelled from the university, he became interested in the graph theory. Vitaly especially liked the cycles of an odd length in which each vertex occurs at most once. Vitaly was wondering how to solve the following problem. You are given an

yo_bc的博客 529

FZU-2205 据说题目很水(思维、完全二分图性质避免三元环)

Sunday最近对图论特别感兴趣,什么欧拉回路什么哈密顿回路,又是环又是树。在看完一本书后,他对自己特别有信心,便找到大牛牛犇犇,希望他出一题来考考自己。 在遥远的古代东方有N个城市,它们之间可以通过双向的道路相连。任意两个城市由不超过一条道路直接相连,而且没有城市的道路连向自身。但是牛犇犇是个纯情的小伙子,尽管他还没有女朋友,但他还是很讨厌第三者,以至于讨厌三这个数字。所以他希望Sunday能够构造一个N个城市的地图,这个地图中不能有任意三个城市能够相互直接到达,而且地图中的道路数目最多。 牛犇犇考虑到S

yo_bc的博客 524

HDU 2448 Mining Station on the Sea(最小费用最大流, KM算法)

The ocean is a treasure house of resources and the development of human society comes to depend more and more on it. In order to develop and utilize marine resources, it is necessary to build mining stations on the sea. However, due to seabed mineral resou

yo_bc的博客 523

hihocoder-1393 二分图的多重匹配(网络流做法)

学校的秋季运动会即将开始,为了决定参赛人员,各个班又开始忙碌起来。 小Hi和小Ho作为班上的班干部,统计分配比赛选手的重任也自然交到了他们手上。 已知小Hi和小Ho所在的班级一共有N名学生(包含小Hi和小Ho),编号依次为1..N。 运动会一共有M项不同的比赛,编号为1..M。第i项比赛每个班需要派出m[i]名选手参加。 根据小Hi和小Ho的统计,编号为i的学生表示最多同时参加a[i]项比赛,并且给出他所擅长的b[i]项比赛的编号。 小Hi和小Ho希望将每个学生都安排到他所擅长的比赛项目,以增加夺冠的可能性

yo_bc的博客 511

C-Cleaning Pipes(判断两线段相交+二分图判定) 2015-2016 Northwestern European Regional Contest (NWERC 2015)

Linköping has a quite complex water transport system. Around Linköping there are several wells from which water is drawn. The water is then transported to other locations using pipes. Each pipe is a straight canal from one of the wells to some location in

yo_bc的博客 480

HDU-1045 Fire Net(简单缩点+最大匹配)

Suppose that we have a square city with straight streets. A map of a city is a square board with n rows and n columns, each representing a street or a piece of wall. A blockhouse is a small castle that has four openings through which to shoot. The four o

yo_bc的博客 449

HDU-3605 Escape(状态压缩+最大流求多重匹配、改版匈牙利算法)

2012 If this is the end of the world how to do? I do not know how. But now scientists have found that some stars, who can live, but some people do not fit to live some of the planet. Now scientists want your help, is to determine what all of people can liv

yo_bc的博客 428
上一篇: 最小点覆盖集之例题
下一篇: HDU-6040 Hints of sd0061 - 2017 Multi-University Training Contest - Team 1(快排思想STL应用)
薄层
博客等级 码龄10年 242粉丝 289原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值