poj2446Chessboard 奇偶建图

Mac安装Weblogic教程 1.Weblogic的下载 这次安装的是最新版本12 官网下载地址: http://www.oracle.com/technetwork/middleware/weblogic/downloads/index.html 下载需要登录账号,如没有账号要注册一个 下载后的文件如下图,其中fmw_12.2.1.3.0_wls_quick.jar文件就是安装包了,注意现在不要对它进行解压 2.安装前的确... 阅读详情
/*因为要用1*2的纸片覆盖,那么两个值(i+j)必然一个奇数一个偶数,然后分别给图中的奇数偶数点依次从1开始标号,相邻的按其标号建图,匈牙利、、比较快速,正解!
因为必然是一个奇数点对应一个相邻偶数点,那么只要求任意奇数或偶数的最大匹配就可以了。经典的建图方法。
*/
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
#define maxm 4050
int n,m,s,tmp,temp;
int map[maxm][maxm],vis[maxm],link[maxm];//map存图
int dfs(int t)
{
    for(int i=1;i<temp;i++)//i<temp
    {
        if(vis[i]==0&&map[t][i])
        {
            vis[i]=1;
            if(link[i]==-1||dfs(link[i]))
            {
                link[i]=t;
                return 1;
            }
        }
    }
    return 0;
}
int MaxMatch()
{
    int num=0;
    memset(link,-1,sizeof(link));
    for(int i=1;i<tmp;i++)//i<tmp
    {
        memset(vis,0,sizeof(vis));
        if(dfs(i))
        num++;
    }
    return num;
}
int main()
{
    int a,b,mmap[40][40];
    while(cin>>n>>m>>s)
    {
		memset(map,0,sizeof(map));
		memset(mmap,0,sizeof(mmap));
        tmp=1;temp=1;
        for(int i=0; i<s; i++)
        {
            cin>>a>>b;
            mmap[b][a]=-1;///
        }
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++){
                if(mmap[i][j]!=-1){
                    if((i+j)&1) mmap[i][j]=temp++;
                    else mmap[i][j]=tmp++;
                }
            }
        for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++){
            if(mmap[i][j]!=-1&&((i+j)&1)){
                if(mmap[i-1][j]>0) map[mmap[i-1][j]][mmap[i][j]]=1;
                if(mmap[i+1][j]>0) map[mmap[i+1][j]][mmap[i][j]]=1;
                if(mmap[i][j-1]>0) map[mmap[i][j-1]][mmap[i][j]]=1;
                if(mmap[i][j+1]>0) map[mmap[i][j+1]][mmap[i][j]]=1;
            }
        }
        cout<<((n*m-s==2*MaxMatch())?"YES":"NO")<<endl;
    }
    return 0;
}

手把手教你学SIMULINK模块库文件专栏-From Workspace 模块详解 模块是 Simulink 中的一个信号源模块,用于从 MATLAB 工作区加载数据作为输入信号。该模块允许用户将预先在 MATLAB 中生成的数据(如时间序列、矩阵或结构体)导入到 Simulink 模型中,从而实现更灵活的信号输入和仿真控制。通过深入了解其参数的影响及结合 MATLAB 脚本的应用,读者可以更加有效地利用这一模块进行仿真和研究。此外,通过实际应用场景的扩展以及常见问题解答部分的帮助,能够更好地掌握。模块是一个非常灵活的工具,适用于需要从 MATLAB 工作区加载数据的各种场景。 阅读详情

相关推荐

RagFlow实战:如何用DeepDoc引擎高效处理扫描PDF文档(附完整代码解析)

本文详细解析了如何利用RagFlow的DeepDoc引擎高效处理扫描PDF文档。通过实战演示从环境搭建、PDF预处理、文本检测与识别,到布局分析与表格结构提取的完整流程,并提供了完整的代码实现。该方案超越了传统OCR,能输出保留原始版面信息的结构化数据,为构建高质量知识库提供了强大支持。

weixin_29245767的博客 299

关于二分图中网格图的建图问题——奇偶建图和拆点

首先所谓的网格图就是这样一张图,图源自POJ - 3020 网格图是天然的二分图,仔细思考这样一张图,i和j分别是网格图的坐标,对于每一个网个都对应一个i+j的值,对这样一个值而言,如果网格是奇数,那么他的上下左右相邻的四个格子必定是偶数(要么加一,要么减一),反之则反,如此在网格图中的匹配问题,我们通常可以采用奇偶建图的方式建图并进行解题。其中奇数和偶数点分别为x部和y部. 当然,我们...

Alanrookie的博客 739

别再傻傻分不清了!一文搞懂电机里的‘旋变’和‘编码器’到底有啥区别

本文深度解析电机位置传感器中旋转变压器(旋变)与编码器的核心区别,包括工作原理、精度对比及环境适应性。通过实测数据和典型应用场景,帮助工程师在工业机器人、新能源汽车电机等关键领域做出精准选型决策,提升系统可靠性和控制精度。

weixin_28689507的博客 499

洛谷P2774 :方格取数问题( 网络流24题 奇偶建图+最小割)

https://www.luogu.org/problemnew/show/P2774 题目描述 在一个有 m*n 个方格的棋盘中,每个方格中有一个正整数。现要从方格中取数,使任意 2 个数所在方格没有公共边,且取出的数的总和最大。试设计一个满足要求的取数算法。对于给定的方格棋盘,按照取数要求编程找出总和最大的数。 输入输出格式 输入格式: 第 1 行有 2 个正整数 m 和 n,...

406

计算机视觉安防监控升级:人脸识别与行为异常检测

计算机视觉安防监控升级:人脸识别与行为异常检测 ,人工智能,计算机视觉,大模型,AI,本文将深入探讨人脸识别与行为异常检测技术在安防监控中的应用,包括技术原理、算法实现、应用场景以及面临的挑战与解决方案。通过实际案例和代码示例,帮助读者更好地理解和掌握这些技术,为推动安防监控系统的智能化升级提供参考。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 23万+

S7-1200中时钟功能设定和读写调用的具体方法

S7-1200中时钟功能设定和读写调用的具体方法

Robot_PLC_HMI_Automation 1万+

POJ - Chessboard(奇偶建图+二分匹配)

题目链接:http://poj.org/problem?id=2446 Time Limit:2000MSMemory Limit:65536K Description Alice and Bob often play games on chessboard. One day, Alice draws a board with size M * N. She wants Bob to u...

ityanger的技术栈 2746

Coze实战:解锁多Bot协同与条件分支工作流的奥秘

本文详细介绍了在字节跳动Coze平台实现多Bot协同与条件分支工作流的方法。首先阐述了Coze平台的功能优势,包括丰富的插件、知识库和工作流功能。随后分步骤讲解了多Bot协同的实现:从准备工作、创建Bot到协同配置,并提供了电商客服的实例演示。在条件分支工作流部分,详细说明了条件节点的作用类型、条件设定方法以及具体配置操作,强调测试优化的重要性。最后通过电商平台综合案例,展示了多Bot协同与条件分支的实际应用效果,并针对常见问题提供解决方案。文章为开发者在Coze平台上构建智能应用提供了实用指导,有助于提升

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 449

Codeforces510E Fox And Dinner(最大流-奇偶建图+路径打印)

搬运大佬题解系列:http://blog.youkuaiyun.com/qwb492859377/article/details/49021453 传送门:点击打开链接 题意: n只狐狸,每个狐狸对应了一个数字,现在要把n只狐狸分成很多个圈坐着,每个圈中至少要有3只,且相邻两只狐狸对应的数字只和必须是质数 思路: 由于相加必须是质数。,且有对应的那个数字>=2,说明这

Rain 535

OpenClaw实战系列03:Slack/Telegram国际版接入实战指南

在当今的软件开发和工作流自动化中,将项目管理工具与即时通讯平台集成已成为提高团队协作效率的关键。OpenClaw作为一个开源的自动化工具,通过接入Slack和Telegram国际版,可以实现实时通知、自动化任务触发和团队协作的无缝对接。本文将详细介绍如何实现OpenClaw与这两个主流即时通讯平台的集成。OpenClaw是一个开源的自动化工作流引擎,支持多种触发器和执行器,能够帮助开发团队实现CI/CD流程、任务调度、监控告警等自动化场景。模块化设计:支持插件化扩展多触发器支持。

PeterPan的博客 585

手把手教你双目测距理论及生成视差图,深度图,点云图像

Stereo Vision, 也叫双目立体视觉,它的研究可以帮助我们更好的理解人类的双眼是如何进行深度感知的。双目视觉在许多领域得到了应用,例如城市三维重建、3D模型构建(如kinect fusion)、视角合成、3D跟踪、机器人导航(自动驾驶)、人类运动捕捉(Microsoft Kinect)等等。双目测距也属于双目立体视觉的一个应用领域,双目测距的基本原理主要是三角测量原理,即通过视差来判定物体的远近。

qq_53545309的博客 2280

LightOJ--1152--Hiding Gold(二分图奇偶建图)(好题)

Hiding Gold Time Limit: 2000MS Memory Limit: 32768KB 64bit IO Format: %lld & %llu Submit Status Description You are given a 2D board where in some ce...

weixin_30706507的博客 170

【时时三省】vector cast (vcast) 集成测试使用教程

山不在高,有仙则名。水不在深,有龙则灵。----优快云 时时三省。

时时三省的博客 706

POJ2446-Chessboard【最大匹配,二分图,奇偶建图】

正题 大意 一个n*m的棋盘上有k个洞,将1*2的木条放在上面,不能铺在洞上,不能重叠,求能不能铺满整个棋盘。 解题思路 用点来建立二分图,然后求最大匹配。 但是奇偶建图会快两倍。奇偶建图就是相邻的块可以相连接,所以它们可以不放在同一边。 代码 #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&...

QuantAsk 446

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

POJ ~ 2446 ~ Chessboard (二分图匹配 + 奇偶性建图)

题意:输入三个数字m,n,k。表示m*n的图中有k个洞,然后输入这k个洞的坐标(y,x),y表示列,x表示行。问拿1*2的木块去是否能铺满这个图,木块不允许覆盖,有洞的地方不允许放。   思路:打死我也想不到这是二分图匹配问题。首先图中的点可以分为两部分,(i+j)为偶数的点,(i+j)为奇数的点,铺砖其实就相当于如果选择一个奇数点那么一定要选择一个偶数点。这样这个图就分为了两部分,奇数点集合...

张松超的博客 412

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Poj_2446 Chessboard -考建图

题目:询问在给定的棋盘中能否用1×2的矩形块填满。 吐槽:由于是二分图专题中,所以毫无悬念地往二分图那边想,而且之前做多校遇到过一个类似的棋盘的题,不过那题目挺难的,是统计连通二分图的个数。 由于刚开始写二分图,所一用了比较蠢的建图方法。网上说用奇偶建图,而我用正负交替建的。 奇偶建图: /**************************************...

bannesi6888的博客 167

poj-2446-Chessboard

poj-2446-Chessboard Chessboard Time Limit:2000MS Memory Limit:65536K Total Submissions:19476 Accepted:6147 Description Alice and Bob often play games on chessbo...

weixin_30325071的博客 125

POJ-2446-Chessboard(二分图匹配)

链接:https://vjudge.net/problem/POJ-2446#author=0 题意: 有一天,罗老板画了一块尺寸为M * N的棋盘。他希望许老师能够使用1 * 2的牌来覆盖棋盘。然而,他认为这很容易,所以他增大了难度,他在棋盘上打了一些洞许老师必须遵守以下规则:1.任何不是洞网格都应该只被一张卡覆盖。2. 一张卡应该正好覆盖2个相邻非洞网格。3. 洞不可以被卡片覆盖 ...

weixin_34260991的博客 160

POJ 2446 Chessboard(奇偶建点法+最大匹配)

题目地址 题意:你有很多1*2的小纸条,你有一个棋盘,棋盘上有许多空洞,空洞上面是不能放小纸条的,要你求出这个棋盘除了空洞以外的所有格子能不能被小纸条覆盖 思路:我不知道为什么通过吧(x,y)坐标化成x*m+y的形式去存是不行的(没有想明白),只有用奇偶建点发才行。 奇偶建点法就是因为他要由相邻的两个块组成一个1*2的块,所有这两个块的(x+y)是一奇一偶的,所以可以用奇偶去表示这两个块。

不要錯過才珍惜 321

Chessboard POJ - 2446 二分图最大匹配

题意 给出n*m矩阵,给出k个漏洞所在坐标,问能不能用1*2的模板覆盖完全不是漏洞的点。 思路 按行+列奇偶性来分成两部分,因为1*2的矩形覆盖的和值一定奇偶性不同,和值为奇数的向上下左右(和值一定是偶数)连边,注意预处理出来每个点的标号。 #include <algorithm>    //STL通用算法 #include <bitset>     /...

lanshan1111的博客 223

POJ 2446 Chessboard

经典的奇偶建图,这个模型有必要记一下。 网络流过了。 #include #include #include #include #include #include #include #include #include #include using namespace std; const int maxn = 40*40; const int INF = 0x3f3f3f3

Wall_F的专栏 1024

POJ 2446 Chessboard 匹配/最小路径覆盖

http://poj.org/problem?id=2446 跟 poj 3020差不多 以前做过一个最小路径覆盖的题,读完这个题就想到了最小路径覆盖。很多大神用的完全匹配,有一点值得学习,就是根据i+j的奇偶性,把点分成两个集合,这样也可以?! 最小路径覆盖的代码(为什么我的运行时间那么长??): 代码: #include<iostream> #include&...

weixin_30566149的博客 83

POJ2446_Chessboard(二分图最大匹配)

解题报告 题目传送门 题意: M×N的矩阵,k个点被标记,用2×1的木板最多可以放置多少个。 思路: 把标记的格子除外,链接相邻的两个格子,然后最大匹配出来的是二分图的两倍。 c++TLE了,G++1700+过了,理论上匈牙利算法的时间复杂度是n^3,就应该超时,可能数据弱吧。 还有一种建图方式就是建成二分图,将矩阵中的点奇偶分。 #include #include #incl

_nplus 2531

poj2446 Chessboard

判断是否是完全匹配,和poj3020相似,给格子编号,由于水平不够效率很低,很多大神用的完全匹配,有一点值得学习,就是根据i+j的奇偶性,把点分成两个集合。 #include #include using namespace std; bool vis[33*33]; int result[33*33]; bool edge [33*33][33*33]; struct c { int x

rookie_Algo的专栏 772

[POJ] 2446 Chessboard(二分图最大匹配)

题目地址:http://poj.org/problem?id=2446 本题建图是关键。因为卡片都是1*2,所以若点V被某个1*2卡片覆盖,则周围包含V的其它1*2区域都不成立。所以想到只要把V点划分在X集合,周围点在Y集合,V向周围点分别连边,就变成了二分图匹配问题,区分点V与周围点可以用横纵坐标之和的奇偶性。若棋盘上除障碍外都能被1*2卡片覆盖,则最大匹配数ans=(棋盘所有点数n*m-障碍...

weixin_30886233的博客 97
上一篇: poj3692Kindergarten poj2584T-Shirt Gumbo多重匹配 拆点 poj3041Asteroids
下一篇: hdu4195Regular Convex Polygon poj2242The Circumference of the Circle
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值