NYOJ 237 游戏高手的烦恼
游戏高手的烦恼
时间限制:1000 ms | 内存限制:65535 KB
难度:5
描述
有一位传说级游戏高手,在闲暇时间里玩起了一个小游戏,游戏中,一个n*n的方块形区域里有许多敌人,玩家可以使用炸弹炸掉某一行或者某一列的所有敌人。他是种玩什么游戏都想玩得
优秀的人,所以,他决定,使用尽可能少的炸弹炸掉所有的敌人。
现在给你一个游戏的状态,请你帮助他判断最少需要多少个炸弹才能炸掉所有的敌人吧。
比如说,下图中X表示敌人
X . X
. X .
. X .
则,他只需要炸掉第1行与第2列就能炸掉所有的敌人,所以只需要两颗炸弹就可以了。
输入
第一行是一个整数T,表示测试数据的组数(0<T<=400)。
每组测试数据的第一行有两个整数n,K,其中n表示游戏方形区域的大小。(n<=500,K<=10 000)
随后的K行,每行有两个整数i,j表示第i行,第j列有一个敌人(行和列都从1开始编号)。(1<=i,j<=n)
输出
对于每组测试数据,输出一个整数表示最少需要的炸弹颗数
样例输入
1
3 4
1 1
1 3
2 2
3 2
样例输出
2
来源
POJ翻译而来
上传者
张云聪
解题:参考月老的难题,最大匹配问题。。。。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <climits>
#include <vector>
#include <queue>
#include <cstdlib>
#include <string>
#include <set>
#define LL long long
#define INF 0x3f3f3f3f
using namespace std;
const int maxn = ;
int n,llink[maxn<<];
vector<int>g[maxn<<];
bool used[maxn<<];
bool dfs(int u) {
for(int v = ; v < g[u].size(); v++) {
if(!used[g[u][v]]) {
used[g[u][v]] = true;
if(llink[g[u][v]] == - || dfs(llink[g[u][v]])) {
llink[g[u][v]] = u;
return true;
}
}
}
return false;
}
int main() {
int t,i,j,m,u,v;
scanf("%d",&t);
while(t--) {
scanf("%d%d",&n,&m);
j = n<<;
for(i = ; i <= j; i++) {
g[i].clear();
}
while(m--) {
scanf("%d%d",&u,&v);
g[u].push_back(n+v);
}
memset(llink,-,sizeof(llink));
int ans = ;
n <<= ;
for(i = ; i <= n; i++) {
memset(used,false,sizeof(used));
if(dfs(i)) ans++;
}
printf("%d\n",ans);
}
return ;
}
NYOJ 237 游戏高手的烦恼的更多相关文章
- nyoj 237 游戏高手的烦恼 二分匹配--最小点覆盖
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=237 二分匹配--最小点覆盖模板题 Tips:用邻接矩阵超时,用数组模拟邻接表WA,暂时只 ...
- nyoj237 游戏高手的烦恼(最小点覆盖)
题目237 题目信息 pid=237" style="text-decoration:none; color:rgb(55,119,188)">执行结果 本题排行 ...
- NYOJ 275 队花的烦恼一
队花的烦恼一 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描写叙述 ACM队的队花C小+常常抱怨:"C语言中的格式输出中有十六.十.八进制输出,然而却没有二进制输 ...
- 2015广东工业大学ACM学校巡回赛 I 游戏高手 (如压力dp)
Problem I: 游戏王 Description 小学的时候,Stubird很喜欢玩游戏王.有一天,他发现了一个绝佳的连锁组合,这个连锁组合须要6张卡. 但是他一张都没有,但是他的那些朋友们有.只 ...
- WebGL实现HTML5贪吃蛇3D游戏
js1k.com收集了小于1k的javascript小例子,里面有很多很炫很酷的游戏和特效,今年规则又增加了新花样,传统的classic类型基础上又增加了WebGL类型,以及允许增加到2K的++类型, ...
- WebGL实现HTML5的3D贪吃蛇游戏
js1k.com收集了小于1k的javascript小例子,里面有很多很炫很酷的游戏和特效,今年规则又增加了新花样,传统的classic类型基础上又增加了WebGL类型,以及允许增加到2K的++类型, ...
- 100行JS实现HTML5的3D贪吃蛇游戏
js1k.com收集了小于1k的javascript小例子,里面有很多很炫很酷的游戏和特效,今年规则又增加了新花样,传统的classic类型基础上又增加了WebGL类型,以及允许增加到2K的++类型, ...
- [转]UML八大误解
潘加宇 本文删节版发表于<程序员>2013年11期 UML(统一建模语言)是软件建模的表示法标准.我从2002年开始专门从事研究和推广UML的工作,在为软件组织提供UML相关需求和设计技能 ...
- 常见电源品牌大揭密(转贴自pceva,作者royalk)
常见电源品牌大揭密(转贴自pceva,作者royalk) 介绍电源品牌代工厂之前,必须介绍一下电源分类: 标准电源 标准电源就是电脑城装机用得最多的电源,性能正常,外观一般,原生接线,也没有什么风扇停 ...
随机推荐
- php 缩略图
<!DOCTYPE html><!-- HTML5表单 --><form method="post" action="" enct ...
- Visual Studio Code配置 HTML 开发环境
Visual Studio Code配置 HTML 开发环境 https://v.qq.com/x/page/l0532svf47c.html?spm=a2h0k.11417342.searchres ...
- javascript 找出数字数组中最大的数
找出数字数组中最大的数 var Match = (function(){ var arr = null; var len = 0; return { max:function(arr,len){ ar ...
- IOS文件下载
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, ...
- webuploader上传工具
http://fex.baidu.com/webuploader/getting-started.html#显示用户选择 Html部分 首先准备dom结构,包含存放文件信息的容器.选择按钮和上传按钮三 ...
- Ubuntu14.04 LTS安装 OpenCV-3.0.0-rc1 + QT5.4.1
I 安装配置工作前的准备 2 II 安装 OpenCV 2 III 安装QT 3 IV 使QT能够使用OpenCV 3 如果顺利,整个过程应该3个小时左右能够完成. 我整个过程用了一早上,配置过程中有 ...
- C# string日期格式
百分数格式应该用“p”这个参数. 格式 原始 数据 结 果 "{0:P}" 0.40 40% 数字 {0:N2} 12.36 数字 {0:N0} 13 货币 {0:c2} $1 ...
- LibreOJ #109. 并查集
题目描述 这是一道模板题. 维护一个 nnn 点的无向图,支持: 加入一条连接 uuu 和 vvv 的无向边 查询 uuu 和 vvv 的连通性 由于本题数据较大,因此输出的时候采用特殊的输出方式:用 ...
- Eclipse被卡死了或者失去响应了后分析根源的一个小技巧
提升程序员工作效率的工具/技巧推荐系列 推荐一个功能强大的文件搜索工具SearchMyFiles 介绍一个好用的免费流程图和UML绘制软件-Diagram Designer 介绍Windows任务管理 ...
- django 数据库的一些操作
1.数据过滤: 使用filter()方法 >>> Publisher.objects.filter(name='Apress') [<Publisher: Apress> ...