hdu 1498
每次只能消除一行或一列的相同颜色的气球,
求有多少种气球在k次内不能消除
求出每种气球最少需要多少次消除,就跟hdu 2119消除1用多少次是一样的问题
就是求有这种气球的行和列的最大匹配
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int map[101][101],link[101],color[55],mark[101],n,c[55];
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int find(int i,int colo)
{
int j;
for(j=1;j<=n;j++)
{
if(map[i][j]==colo&&mark[j]==0)
{
mark[j]=1;
if(link[j]==0||find(link[j],colo)==1)
{
link[j]=i;
return 1;
}
}
}
return 0;
}
int main()
{
int i,j,sum,k,temp,num;
while(scanf("%d%d",&n,&k),n&&k)
{
temp=0;
memset(map,0,sizeof(map));
memset(color,0,sizeof(color));
memset(mark,0,sizeof(mark));
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
scanf("%d",&map[i][j]);
if(mark[map[i][j]]==0)
{
color[temp++]=map[i][j];
mark[map[i][j]]=1;
}
}
num=0;
for(i=0;i<temp;i++)
{
memset(link,0,sizeof(link));
sum=0;
for(j=1;j<=n;j++)
{
memset(mark,0,sizeof(mark));
sum=sum+find(j,color[i]);
}
if(sum>k)
{
c[num++]=color[i];
}
}
qsort(c,num,sizeof(c[0]),cmp);
if(num==0)
printf("-1\n");
else
{
printf("%d",c[0]);
for(i=1;i<num;i++)
printf(" %d",c[i]);
printf("\n");
}
}
return 0;
}
hdu 1498的更多相关文章
- HDU 1498:50 years, 50 colors(二分图匹配)
http://acm.hdu.edu.cn/showproblem.php?pid=1498 题意:给出一个 n*n 的矩阵,里面的数字代表一种颜色,每次能炸掉一排或者一列的相同颜色的气球,问有哪些颜 ...
- hdu 1498 50 years, 50 colors(二分匹配_匈牙利算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1498 50 years, 50 colors Time Limit: 2000/1000 MS (Ja ...
- Hdu 1498 二分匹配
50 years, 50 colors Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- HDU 1498 50 years, 50 colors(最小点覆盖,坑称号)
50 years, 50 colors Problem Description On Octorber 21st, HDU 50-year-celebration, 50-color balloons ...
- hdu 1498 50 years, 50 colors 最小点覆盖
50 years, 50 colors Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- 50 years, 50 colors HDU - 1498(最小点覆盖或者说最小顶点匹配)
On Octorber 21st, HDU 50-year-celebration, 50-color balloons floating around the campus, it's so nic ...
- hdu 1498(最小点覆盖集)
50 years, 50 colors Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- HDU——1498 50 years, 50 colors
50 years, 50 colors Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- HDU 1498 50 years, 50 colors (行列匹配+最小顶点覆盖)
题目:点击打开链接 题意:每个格子有不同颜色的气球用不同数字表示,每次可选某一行 或某一列来戳气球.每个人有K次机会.求最后哪些气球不能在 k次机会内 ...
随机推荐
- Cocos2d-x Lua 阅读Csv文件,使用数据更方便
在我的书或出售之前,我的源代码,有Csvshadow文件. 也许这是偏见.我与工作将是最长的轮廓Csv,所以,我会帮助不大喜欢它的游戏. Csv文件,非常格式easy,也就是说,一个数据线,字段之间用 ...
- 由一个LED闪烁问题发现的MTK的LED driver中存在的问题
今天依据最新的需求要对LED灯的提示闪烁频率进行改动,将之前默认的2000ms改为10000ms,可是改动之后没有产生预料中的效果,而是变成了常量,百思不得其解,最后还是read the fuckin ...
- POJ1320 Street Numbers【佩尔方程】
主题链接: http://poj.org/problem?id=1320 题目大意: 求解两个不相等的正整数N.M(N<M),使得 1 + 2 + - + N = (N+1) + - + M.输 ...
- td中的值自动换行
设置td中的值自动换行在<td ></td> 中加上这样一句代码,可以简省设置,使长字符串换行.而不用设置width,height. style="word-wrap ...
- 在windows server里,对于同一个账号,禁止或允许多个用户使用该账户,同时登录
开始 -> 运行 -> gpedit.msc -> 本地计算机 策略 -> 计算机配置 -> 管理模板 -> Windows 组件 -> 远程桌面服务 -&g ...
- HBuilder js 自定义代码块
=begin 本文档是HBuilder预置的js代码块的文件.注意不要把其他语言的设置放到js里来. 如果用户修改此文档,HBuilder升级后会覆盖用户的修改,建议进入菜单 工具→扩展代码块 扩展相 ...
- 命令行配置源和安装本地rpm包
因为Firefox的在写博客时提交代码会丢失缩进,所以打算安装Chrome来写博,还不错,学到了两条命令- [shell] sudo yum-config-manager --add-repo=htt ...
- Zend Server更新至6.2版本——虚拟主机全方位管理
Zend Server自从发布6.0以来,并支持云服务,成为很多PHP程序所选择的Web服务器. Zend Server 6.2版本从更新内容来看,解决了Web服务器与虚拟主机之间的协同管理.并在细节 ...
- 手机发送短信JS验证
function tj() { var phone = jQuery('#phone').val(); var code = jQuery('#verificationcode').val(); va ...
- C#里CheckListBox的全选
for (int i = 0; i < chkLSelect.Items.Count; i++) { if (chkCheck.Checked ...