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次机会内 ...
随机推荐
- BestCoder Round #11 (Div. 2) 题解
HDOJ5054 Alice and Bob Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O ...
- jQuery库(noConflict)冲突解决机制
很多JSFramework库选择使用$符号作为一个函数或变量名,而在实际的项目开发,模板语言,则有可能"$"符号是模板语言keyword.例如Veclocity模板语言,$它是ke ...
- C#调用Outlook来发送邮件
原文:C#调用Outlook来发送邮件 写了一个简单的Windows Form程序,实现利用Outlook来发送电子邮件的功能.下面逐步讲解如何实现,再加上具体的代码. 打开VS2010, 新建一个W ...
- git简单教材
0)初始化 $ git config --global user.name "xxx" $ git config --global user.email "xxx@gma ...
- centos6.4搭建apache+mysql+php环境
最近用php做的项目到了项目部署的时候,服务器为centos6.4系统,为了快捷部署,采用yum安装部署 大部分内容参考博客 http://blog.sina.com.cn/s/blog_c02ed ...
- WebService它CXF这三个音符(Service接口实现类)
ITeacherServiceImpl.java: /** * @Title:ITeacherServiceImpl.java * @Package:com.you.service.impl * @D ...
- openGL线s的绘制
/** * 缓冲区工具类 */ public class BufferUtil { /** * 将浮点数组转换成字节缓冲区 */ public static ByteBuffer arr2ByteBu ...
- MVC与Validate验证提示的样式修改
MVC中使用Validate的验证,要修改错误提示样式一共有3处需要修改,否则就不太完美了: MVC中的Validate的验证机制只用在后台写一次,就可以完成前台和后台的完美验证,前台的验证主要是依靠 ...
- Python3.4入门之ifelse错误解决方案
笔者用的是Python3.4 开始接触到ifelse语句 发现这样---C:\Users\Administrator>python e:\Python34\ifelse.py--去执行的时候老是 ...
- IIS发布网站,浏览网站时候,出现 试图加载格式不正确的程序。
异常来自HRESULT:0x8007000B 缘由:在64位操作系统下IIS发布32位的项目,报“项目依赖的dll无法读取,试图加载格式不正确的程序”错误. 原因:程序集之间的通讯要么全是64位环境下 ...