[JoyOI] 1035 棋盘覆盖 (二分图匹配)
题目描述
给出一张nn(n<=100)的国际象棋棋盘,其中被删除了一些点,问可以使用多少12的多米诺骨牌进行掩盖。
输入格式
第一行为n,m(表示有m个删除的格子)
第二行到m+1行为x,y,分别表示删除格子所在的位置
x为第x行
y为第y列
输出格式
一个数,即最大覆盖格数
提示
经典问题
样例数据
输入样例 #1
8 0
输出样例 #1
32
code:
//By Menteur_Hxy
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<ctime>
#include<queue>
#include<vector>
using namespace std;
const int MAX=500010;
const int INF=0x3f3f3f3f;
int n,m;
long long ans;
int match[10010];
bool jin[10010],vis[10010];
int book[4]={1,-1};
bool dfs(int u) {
int y=(u-1)%n+1,x=(u-1)/n+1;
for(int i=0;i<4;i++) {
if((i==0&&y+1>n)||(i==1&&y-1<1)||(i==2&&x+1>n)||(i==3&&x-1<1)) continue;
int v=u+book[i];
if(jin[v]) continue;
if(!vis[v]){
vis[v]=1;
if( !match[v] || dfs(match[v])) {
match[v]=u; return true;
}
}
}
return false;
}
int main() {
scanf("%d %d",&n,&m);
book[2]=n,book[3]=-n;
for(int i=1;i<=m;i++) {
int x,y;
scanf("%d %d",&x,&y);
jin[(x-1)*n+y]=1;
}
for(int i=1;i<=n*n;i++) {
int y=(i-1)%n+1,x=(i-1)/n+1;
for(int j=1;j<=n*n;j++) vis[j]=0;
if((y+x&1)&1 && !jin[i])
if(dfs(i)) ans++;
}
printf("%lld",ans);
return 0;
}
[JoyOI] 1035 棋盘覆盖 (二分图匹配)的更多相关文章
- [JOYOI] 1035 棋盘覆盖
题目限制 时间限制 内存限制 评测方式 题目来源 1000ms 131072KiB 标准比较器 Local 题目描述 给出一张nn(n<=100)的国际象棋棋盘,其中被删除了一些点,问可以使用多 ...
- tyvj1035棋盘覆盖——二分图匹配
题目:http://www.joyoi.cn/problem/tyvj-1035 把可放的位置作为节点,相邻的连边. 可用天然有的编号作为节点的编号. 果然只用连单向边就行了.也只需记录另一部的对应点 ...
- cogs_396_魔术球问题_(最小路径覆盖+二分图匹配,网络流24题#4)
描述 http://cojs.tk/cogs/problem/problem.php?pid=396 连续从1开始编号的球,按照顺寻一个个放在n个柱子上,\(i\)放在\(j\)上面的必要条件是\(i ...
- BZOJ1143 [CTSC2008]祭祀river 二分图匹配 最小链覆盖
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1143 题意概括 给出一个有向图.求最小链覆盖. 题解 首先说两个概念: 链:一条链是一些点的集合, ...
- 网络流24题 第三题 - CodeVS1904 洛谷2764 最小路径覆盖问题 有向无环图最小路径覆盖 最大流 二分图匹配 匈牙利算法
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - CodeVS1904 题目传送门 - 洛谷2764 题意概括 给出一个有向无环图,现在请你求一些路径,这些路径 ...
- TYVJ 1035 / codevs 2171 棋盘覆盖
Problem Description 给定一个n * m的棋盘,已知某些各自禁止放置,求最多往棋盘上放多少长度为2宽度为1的骨牌(骨牌不重叠) Input 第一行为n,m(表示有m个删除的格子)第二 ...
- [Cogs728] [网络流24题#3] 最小路径覆盖 [网络流,最大流,二分图匹配]
建图:源点—>边的起点(集合1中的)—>边的终点(集合2中的)—>汇点,所有边权均为1, 计算最大流,最后枚举起点的出边,边权为0的即为匹配上的, 可以这样理解:每条边表示起点和终点 ...
- TYVJ1035 棋盘覆盖
时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 给出一张n*n(n<=100)的国际象棋棋盘,其中被删除了一些点,问可以使用多少1*2的多米诺骨牌进行掩 ...
- bzoj 2706: [SDOI2012]棋盘覆盖 Dancing Link
2706: [SDOI2012]棋盘覆盖 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 255 Solved: 77[Submit][Status] ...
随机推荐
- 公告:CSDN博客积分系统升级(暂行版)
各位亲爱的用户: CSDN博客频道将于2014年10月22日23点至10月23日8点进行积分系统的升级,升级期间会影响大家的正常訪问和操作.给大家带来不便.敬请广大用户谅解.很多其它详情见>&g ...
- LeetCode: Word Ladder [126]
[题目] Given two words (start and end), and a dictionary, find the length of shortest transformation s ...
- hdu1209(Clock)
pid=1209">点击打开hdu1209 Problem Description There is an analog clock with two hands: an hour h ...
- FZU 1851 组合数
给你两个数n和m,然后让你求组合数C(n,m)中的质因子的个数. 这里用到的一个定理:判断阶乘n!中的质因子 i 的个数的方法---f(n!)=n/i+n/i^2+n/i^3+.....n/i^m ( ...
- 【cl】找不到火狐Cannot find firefox binary in PATH
org.openqa.selenium.WebDriverException: Cannot find firefox binary in PATH. Make sure firefox is ins ...
- Codeforces Beta Round #95 (Div. 2) D. Subway 边双联通+spfa
D. Subway A subway scheme, classic for all Berland cities is represented by a set of n stations co ...
- GNU TeXmacs 1.99.8 发布,所见即所得科学编辑器(看看老实的GUI)
GNU TeXmacs 1.99.8 已发布,这是一个支持各种数学公式的所见即所得编辑器,可以用来编辑文本.图形.数学.交互内容,它的界面非常友好,并且内置高质量的排版引擎. 更新内容: bug 修复 ...
- oc11---结构体作为属性
// // main.m // 结构体作为对象的属性 #import <Foundation/Foundation.h> typedef struct { int year; int mo ...
- AIX的系统备份
AIX克隆盘即AIX的rootvg的备用替换磁盘,用于保留AIX的原始状态,它可作为软件的升级后出现问题快速回退到原系统的备份手段,也可用于测试两个不同版本的AIX系统.系统可保留两块引导磁盘,而且都 ...
- Wannafly挑战赛25 C 期望操作数 数学
题目 题意:给你你一个数x和一个数q,x<=q,每一次可以等概率把x变成[x,q]中任意一个数,问变成q的步数的期望,输出对998244353取模,多组询问 题解:首先肯定的是,可以预处理,因为 ...