Description

兔子不吃窝边草,但是如果一窝兔子吃了另一窝的窝边草怎么办呢?当然是强行挪窝了。

给你兔子窝的数量和位置,求最少要给几窝兔子挪窝。

假设兔子窝的位置为(x,y),则兔子吃草的位置为(x±1,y±1)。

Input

对于每个测试用例,第一行输入两个整数m,n;0<=x<=m,0<=y<=m;n表示有n个兔子窝,m<32;之后n行每行输入两个数,表示兔子窝的位置x,y.

Output

输出一个数,表示需要删掉的兔子窝的数量。

Sample Input

1 1
1 1

Sample Output

0

HINT

范围应该是四个方向,  (x+1,y+1),(x+1,y-1),(x-1,y+1),(x-1,y-1)位置不能有其他的兔子窝.

题解:二分图匹配,定义一组匹配 i和 j ,满足二分图的性质(bfs染色不会重)。

#include <bits/stdc++.h>
using namespace std;const int MAXN=1005;int uN, vN;
int g[MAXN][MAXN];
int linker[MAXN], used[MAXN];int dfs(int u)
{for(int v=1; v<=vN; v++)if(g[u][v] && !used[v]){used[v]=true;if(linker[v]==-1 || dfs(linker[v])){linker[v]=u;return true;}}return false;
}int hungary()
{int res=0;memset(linker, -1, sizeof(linker));for(int u=1; u<=uN; u++){memset(used, 0, sizeof(used));if(dfs(u)) res++;}return res;
}int m, n;
int x[MAXN], y[MAXN]; int main()
{while(~scanf("%d%d", &m, &n)){memset(g, 0, sizeof(g));uN=vN=n;for(int i=1; i<=n; i++)scanf("%d%d", &x[i], &y[i]);for(int i=1; i<=n; i++)for(int j=1; j<=n; j++){if(g[i][j]) continue;if(x[j]==x[i]+1 && y[j]==y[i]+1)      g[i][j]=g[j][i]=1;else if(x[j]==x[i]+1 && y[j]==y[i]-1) g[i][j]=g[j][i]=1;else if(x[j]==x[i]-1 && y[j]==y[i]-1) g[i][j]=g[j][i]=1;else if(x[j]==x[i]-1 && y[j]==y[i]+1) g[i][j]=g[j][i]=1;}int ans=hungary()/2;printf("%d\n", ans);}}
/**************************************************************Problem: 1189Language: C++Result: AcceptedTime:21 msMemory:5984 kb
****************************************************************/

View Code

转载于:https://www.cnblogs.com/Yokel062/p/11505663.html

Problem A: 兔子相关推荐

  1. 牛客网 NC20859 兔子的名字

    文章目录 1. 题目描述 1.1. Title 1.2. Time Limit 1.3. Memory Limit 1.4. Problem Description 1.5. Input 1.6. O ...

  2. c语言程序设计年份,C语言程序设计 输出任意年份的日历

    Output 输出字母c之后的第d个字母.大小写与c一致.如果c之后的某个字母已经超出'Z',则再从字母'A'开始计数. 如:c='A',d=3,则输出应为:D. 若:c='Y',d=3,则输出应为: ...

  3. BZOJ 1001: [BeiJing2006]狼抓兔子【最大流/SPFA+最小割,多解】

    1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec  Memory Limit: 162 MB Submit: 23822  Solved: 6012 [Submit ...

  4. 1001: [BeiJing2006]狼抓兔子

    /**************************************************************Problem: 1001User: whymheLanguage: C+ ...

  5. bzoj4027,[HEOI2015]兔子与樱花

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4027 Description 很久很久之前,森林里住着一群兔子.有一天,兔子们突然决定 要 ...

  6. 对偶图 【BZOJ】1001: [BeiJing2006]狼抓兔子(对偶图+最短路)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1001 可谓惨不忍睹,一下午就在调这题了. 很久以前看到这题是一眼最大流,看到n<=1000,我 ...

  7. 狼抓兔子(HYSBZ-1001)

    Problem Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王 ...

  8. P2030 - 【BJOI2006】狼抓兔子

    P2030 - [BJOI2006]狼抓兔子 Description 八中OJ上本题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1001  现 ...

  9. matlab兔子繁殖问题,斐波那契数列在《疯狂动物城》兔子繁衍中的应用

    摘    要: 计算思维的构建有助于帮助学生将实际问题转换为透明易懂的框架算法, 并借助计算机解决.以电影<疯狂动物城>中的兔子繁殖问题为例, 引出斐波那契数列, 引导学生将数学表达式转化 ...

  10. 752. [BJOI2006] 狼抓兔子

    ★★★☆   输入文件:bjrabbit.in   输出文件:bjrabbit.out   简单对比 时间限制:1 s   内存限制:162 MB Description   Source: Beij ...

最新文章

  1. svn mysql认证_svnapachemysql 认证搭建
  2. 移动网络安全不容忽视 对恶意程序打好防范补丁
  3. Chrome常用快捷键整理汇总
  4. [蓝桥杯历届试题] 欧拉与鸡蛋
  5. 李宏毅机器学习(七)自监督学习(二)BERT奇闻轶事
  6. spring boot----简单入门
  7. 简约响应式导航主题VIK_WordPress模板
  8. 2012微软校园招聘笔试题
  9. Microsoft visual studio关闭安全检查
  10. 编程设置最小化、最大化、关闭按钮 相关讨论
  11. 2017 十款最佳iPhone渗透APP及工具
  12. C++数据结构——栈
  13. android 进入recovery,安卓手机如何进入Recovery模式的通用方式详解
  14. 不同麻醉方案以及清醒条件下大鼠大脑连接模式分析
  15. 微信小程序-000-签到功能-011-我报名过的活动-查看详情
  16. 对勾函数_对勾函数的图像及其性质1.pptx
  17. 2016版excel_有win10系统excel打开慢的问题来看
  18. Python音视频剪辑库MoviePy1.0.3中文教程导览及可执行工具下载
  19. Centos Linux 6.5 破解root密码
  20. 怎么给照片添加马赛克?这些方法值得收藏

热门文章

  1. scikit-learn 线性回归算法库小结
  2. Android中手机号、车牌号正则表达式
  3. android源码定制之初探--定制android关机界面
  4. 按国家归类的海淘网站大全
  5. 进入Java世界的第一个程序Hello world
  6. Libcurl最初的实现tfp上传和下载功能
  7. Xshell- Xftp评估过期处理方法
  8. Multi-Instance Multi-Label Learning Networks for Aspect-Category Sentiment Analysis
  9. 火狐浏览器打开IE窗口/IE跳谷歌页面等 --- 自定义协议---手动执行注册表
  10. (可能是)最后一次参加同学婚礼了