poj 2226 Muddy Fields 最小顶点覆盖

题目链接:http://poj.org/problem?id=2226

这道题跟上一道很相似不同之处在于这里不是整行或者整列的删,而是连续的几个可以一起删,不连的不能删,这就要对原图进行处理,对原有的图行由上到下,列由左到右进行编号,作为x集合,在同一行且连续的编号一样,然后对原有的图列由左到右,行由上到下重新编号,作为y集合。之后就是二分图求最大匹配。

View Code
 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 using namespace std;
 5 const int MAX=55;
 6 int visit[20*MAX];
 7 int map[MAX][MAX];
 8 int res[20*MAX][20*MAX];
 9 int use[20*MAX];
10 int n,m,xx,yy;
11 int solve(int x)
12 {
13     int i;
14     for(i=1;i<=yy;i++)
15         if(res[x][i]&&!visit[i])
16         {
17             visit[i]=1;
18             if(use[i]==-1||solve(use[i]))
19             {
20                 use[i]=x;
21                 return 1;
22             }
23         }
24         return 0;
25 }
26 int match()
27 {
28     int i,count=0;
29     for(i=1;i<=xx;i++)
30     {
31         memset(visit,0,sizeof(visit));
32         if(solve(i))count++;
33     }
34     return count;
35 }
36 void build()
37 {
38     int i,j,k;
39     k=0;
40     for(i=1;i<=n;i++)
41         for(j=1;j<=m;)
42             if(map[i][j]){
43                 k++;
44                 while(j<=m&&map[i][j])
45                     map[i][j++]=k;
46             }
47             else j++;
48             xx=k;
49             k=0;
50             for(j=1;j<=m;j++)
51                 for(i=1;i<=n;)
52                     if(map[i][j]){
53                         k++;
54                         while(i<=n&&map[i][j])
55                         {
56                             res[map[i][j]][k]=1;
57                             i++;
58                         }
59                     }
60                     else i++;
61                     yy=k;
62 }
63 int main()
64 {
65     int i,j;
66     char ch;
67     while(scanf("%d%d",&n,&m)!=EOF)
68     {
69         memset(map,0,sizeof(map));
70         memset(res,0,sizeof(res));
71         memset(use,-1,sizeof(use));
72         for(i=1;i<=n;i++)
73             for(j=1;j<=m;j++)
74             {
75                 //scanf("%c",&ch);
76                 cin>>ch;
77                 if(ch=='*')
78                 {
79                     map[i][j]=1;
80                 }
81             }
82             build();
83             printf("%d\n",match());
84     }
85     return 0;
86 }

 

转载于:https://www.cnblogs.com/zhaoguanqin/archive/2012/05/07/2488853.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/262724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python抓取网站URL小工具

1、安装Python requests模块&#xff08;通过pip&#xff09;&#xff1a; 环境搭建好了&#xff01; 2、测试一下抓取URL的过程&#xff1a; 抓取出来的URL有JavaScript代码&#xff0c;正则上还有待更加完善&#xff0c;有兴趣的可以研究下~&#xff01; 工具源代码: #coding…

二叉树特性及详细例子

二叉树的性质 一般二叉树性质&#xff1a; 在非空二叉树的k层上&#xff0c;至多有2k个节点(k>0)高度为k的二叉树中,最多有2k1-1个节点(k>0)对于任何一棵非空的二叉树,如果叶节点个数为n0&#xff0c;度数为2的节点个数为n2&#xff0c;则有: n0 n2 1完全二叉树性质:只…

创建 Spring容器的三种方式

一、src路径下打包完在war包的classes层级下 1、Spring容器创建的三种方式 创建Bean容器之后创建对象&#xff1a; 其中第三种使用的是BeanFactory对象 2、spring通过配置文件用容器创建对象的原理 转载于:https://www.cnblogs.com/wmqiang/p/11537638.html

yii使用寻呼功能

CDbCriteria这是类包使用&#xff0c;包是yii自带专门用来处理类似分类这种功能的。而我们使用yii框架然后调用这种方法会起到事半功倍的效果&#xff0c;会发现使用这个可以节省非常多的时间。让你高速的使用PHP中分页的功能。 还要使用的一个类包就是CPagination&#xff0c;…

VTK:一个面向对象的可视化类库(zz)

VTK&#xff1a;一个面向对象的可视化类库(zz) &#xff08;高隽 黄伟 合肥工业大学计算机与信息学院 合肥 230009&#xff09; 摘要 Visualization Toolkit 是一个面向对象的可视化类库&#xff0c;它为从事可视化应用程序开发的广大科研工作者提供直接的技术支持。VTK…

装配Bean的三种方式

一、装配Bean就是在xml写一个Bean标签&#xff1b;装配完Bean,还需要读取xml配置文件创建Spring容器来创建对象&#xff1b; 1、new 实现类方式 正常的三种创建Bean容器的方法都可以根据装配的Bean创建的Bean对象&#xff1b; 2、静态工厂模式方式 其中&#xff0c;静态工厂方式…

通用权限管理系统组件 (GPM - General Permissions Manager) 权限管理以前我们都是自己开发,可是到下一个系统又不适用,又改,加上人员流动大,管理很混乱...

权限管理以前我们都是自己开发&#xff0c;可是到下一个系统又不适用&#xff0c;又改&#xff0c;加上人员流动大&#xff0c;管理很混乱 Ψ吉日嘎拉 采用通用权限管理系统&#xff0c;这些烦恼就少了很多了&#xff0c;很固定&#xff0c;很稳定。 权限管理系统是否支持按组织…

Mahout 介绍

1.Hbasek-means (G级别) 2.k-meansmr (T级别)1. 2.canopy 2.贝叶斯算法 决策&#xff0c;分类&#xff0c;文档分类3.推荐系统 4.图书推荐系统 1.需求 付完款的用户90%都要回到购物车看看自己买的东西是否少买/多买 猜你喜欢 购买组合 内部推荐系统测试jps查询 转载于:https:/…

Android游戏开发系统控件-CheckBox

Android游戏开发系统控件-CheckBox 2012/5/11 星期五 CheckBox是Android系统最普通的UI控件&#xff0c;继承了Button按钮 下面通过一个实例来学习 作者&#xff1a;wwj 功能&#xff1a;实现复选框的功能 创建项目“CheckBoxProject” 运行项目效果截图&#xff1a; 代码实现&…

改变Fragment的默认动画

FragmentTransaction ft getFragmentManager().beginTransaction(); //设置进入退出动画 ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);DetailsFragment newFragment DetailsFragment.newInstance();ft.replace(R.id.details_fragment_container, …

Android从无知到有知——NO.7

的ip拨号器在监听外拨电话时用的是系统提供的广播事件。而有些时候我们须要自己设定广播事件来满足特定的须要。Ok&#xff0c;今天整一下自己定义广播事件&#xff0c;我们用一个状态监測模块向一个3G模块发送报警信息来实现这一想法。 先定义一个3g模块用来接收特定的广播&am…

Flex 学习随笔 ---- 玩 Chart

上次好象写了Flex通过web服务访问数据库&#xff0c;并绑定一个简单的Chart. 在Flex Builder 3 里&#xff0c;有很多Chart &#xff0c;我好象只会一个ColumnChart。不过其他的也差不多。 来个简单的。上代码才是王道。。 Code<mx:Panel layout"absolute" right&…

浅析拯救小矮人的 nlogn 算法及其证明

浅析拯救小矮人的 nlogn 算法及其证明 题型简介&#xff1a; 有 $ n $ 个人&#xff0c;第 $ i $ 个人身高 $ a_i $ 手长 $ b_i $ &#xff0c;他们为了从一个高为 $ H $ 的洞中出去&#xff0c;决定搭人梯。如果一个人和他下面的人的身高之和加上他的手长可以达到洞的高度&…

Android Material Design TabLayout属性app:tabMode和app: tabGravity

Android Material Design TabLayout属性app:tabMode和app: tabGravity Android Material Design 中的TabLayout有两个比较有用的属性 app:tabMode、app:tabGravity&#xff0c; &#xff08;1&#xff09;app:tabMode有两个值&#xff1a;fixed和scrollable。 &#xff08;2&am…

unity混音

前言在游戏中&#xff0c;通常我们需要控制整个游戏的主音量&#xff08;全局音量&#xff09;&#xff0c;并且单独控制背景音乐和其他音效&#xff08;攻击、爆炸之类&#xff09;的音量&#xff0c;这时我们可以用Audio Mixer来解决。 如果文章中有哪些地方写的不对&#xf…

一个较完整的关键字过滤解决方案(上)

如果您希望看到关键字过滤算法的话那么可能就要失望了。博客园中已经有不少关于此类算法的文章&#xff08;例如这里和这里&#xff09;&#xff0c;虽然可能无法直接满足特定需求&#xff0c;但是已经足够作为参考使用。而本文的目的&#xff0c;是给出一个较为完整的关键字过…

【转】Thunderbird中配置签名

原文网址&#xff1a;https://support.mozilla.org/zh-CN/kb/Thunderbird%E4%B8%AD%E9%85%8D%E7%BD%AE%E7%AD%BE%E5%90%8D “签名”是一块自动附加到每个您发出的消息的文字&#xff08;包括新消息和对收到消息的回复&#xff09;。他们通常用来提供与每个消息有关的附加联系信…

依赖注入Bean属性——手动装配Bean

一、构造方法注入 其中&#xff0c;可以根据不同的参数列表调用不同的重载的构造方法&#xff1b; 其中&#xff0c;基本数据类型没有包&#xff0c;引用类型都有包路径&#xff0c;基本类型对应封装类&#xff1b; 二、通过property标签调用类的set方法注入 三、通过p命名空间…

ADO.NET数据库

ASP.NET提供了ADO.NET技术&#xff0c;它是ASP.NET应用程序与数据库进行交互的一种技术。 ADO.NET技术把对数据库的操作分为几个步骤&#xff0c;并为每个步骤提供对象来封装操作过程&#xff0c;从而使对数据库的操作变得简单易行。 ADO.NET组件通过以下两个主要的组件将数据访…

十天学会ASP.Net——(2)

2.Web控件 1&#xff09;WebControl基类属性 参考http://msdn.microsoft.com/zh-cn/library/7zt8s89c 2&#xff09;Form控件&#xff08;很简单&#xff09; 应用&#xff1a;实现如下效果 <form id"form1" runat"server"> <div> 班级:<br…