链接:

http://acm.hdu.edu.cn/showproblem.php?pid=1045

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82834#problem/A

一看原题,先用搜索写一下,还是要学学匹配吧!

以前的代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 10
#define INF 0x3f3f3f3f int n, ans;
char G[N][N]; bool judge(int x, int y)
{
int i; if(G[x][y]=='X')
return false; for(i=x; i>=; i--)
{
if(G[i][y]=='X')
break;
if(G[i][y]=='D')
return false;
} for(i=y; i>=; i--)
{
if(G[x][i]=='X')
break;
if(G[x][i]=='D')
return false;
}
return true;
} void DFS(int z, int k)
{
int x, y; x = z/n;
y = z%n; if(z==n*n)
{
ans = max(ans, k);
return ;
} if(judge(x, y))
{
G[x][y] = 'D';
DFS(z, k+);
G[x][y] = '.';
} DFS(z+, k);
} int main()
{
while(scanf("%d", &n),n)
{
int i; memset(G, , sizeof(G));
for(i=; i<n; i++)
scanf("%s", G[i]); ans = ;
DFS(, ); printf("%d\n", ans);
}
return ;
}

不懂什么意思,先贴上

匹配的代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 105
#define INF 0x3f3f3f3f struct node{int x, y;}a[N][N]; int n, p[N], used[N], x, y, G[N][N];
char s[N][N]; int Find(int u)
{
for(int i=; i<=y; i++)
{
if(!used[i] && G[u][i])
{
used[i]=;
if(!p[i] || Find(p[i]))
{
p[i] = u;
return true;
}
}
}
return false;
} int main()
{
while(scanf("%d", &n),n)
{
int i, j; memset(s, , sizeof(s));
for(i=; i<n; i++)
scanf("%s", s[i]); x = y = ;
for(i=; i<n; i++)
for(j=; j<n; j++)
{
if(s[i][j]=='.')
{
if(j== || s[i][j-]=='X')
x++;
a[i][j].x = x;
}
if(s[j][i]=='.')
{
if(j== || s[j-][i]=='X')
y++;
a[j][i].y = y;
}
} memset(G, , sizeof(G));
for(i=; i<n; i++)
for(j=; j<n; j++)
{
if(s[i][j]=='.')
{
int u = a[i][j].x;
int v = a[i][j].y;
G[u][v] = ;
}
} int ans= ;
memset(p, , sizeof(p));
for(i=; i<=x; i++)
{
memset(used, , sizeof(used));
if(Find(i)==true)
ans++;
} printf("%d\n", ans);
}
return ;
}

(匹配)Fire Net --hdu --1045的更多相关文章

  1. A - Fire Net - hdu 1045(二分图匹配)

    题意:一个阵地可以向四周扫射,求出来最多能修多少个阵地,墙不可以被扫射透,阵地不能同行或者或者列(有墙隔着例外) 分析:很久以前就做过这道题..当时是练习深搜来着,不过时间复杂度比较高,现在再看突然发 ...

  2. Fire Net HDU - 1045(二分匹配)

    把每一列中相邻的 .  缩为一个点 作为二分图的左边 把每一行中相邻的  .  缩为一个点 作为二分图的右边 然后求最大匹配即可 这题用匈牙利足够了...然而..我用了hk...有点大材小用的感觉// ...

  3. Fire Net HDU - 1045 (二分图匹配)

    题意: 给出一张图,图中'X'表示wall,'.'表示空地,可以放置blockhouse同一条直线上只能有一个blockhouse,除非有wall 隔开,问在给出的图中最多能放置多少个blockhou ...

  4. Fire Net HDU 1045

    简单深搜,可以完全暴力,不会超时的. #include<iostream> #include<cstring> #include<cmath> using name ...

  5. hdu 1045 Fire Net(最小覆盖点+构图(缩点))

    http://acm.hdu.edu.cn/showproblem.php?pid=1045 Fire Net Time Limit:1000MS     Memory Limit:32768KB   ...

  6. HDU 1045(Fire Net)题解

    以防万一,题目原文和链接均附在文末.那么先是题目分析: [一句话题意] 给定大小的棋盘中部分格子存在可以阻止互相攻击的墙,问棋盘中可以放置最多多少个可以横纵攻击炮塔. [题目分析] 这题本来在搜索专题 ...

  7. HDOJ(HDU).1045 Fire Net (DFS)

    HDOJ(HDU).1045 Fire Net [从零开始DFS(7)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双重DFS HD ...

  8. HDU 1045——Fire Net——————【最大匹配、构图、邻接矩阵做法】

    Fire Net Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  9. HDU 1045 Fire Net 二分图建图

    HDU 1045 题意: 在一个n*n地图中,有许多可以挡住子弹的墙,问最多可以放几个炮台,使得炮台不会相互损害.炮台会向四面发射子弹. 思路: 把行列分开做,先处理行,把同一行中相互联通的点缩成一个 ...

随机推荐

  1. java-- 的子类/父类构造方法 转

    前提:父类和子类同时都有有参的构造函数和无参构造函数. Java中的子类初始化时初值为空.调用顺序为先调用父类无参构造函数,然后调用子类无参构造函数. java中的子类初始化时初值不为空.调用顺序为先 ...

  2. Mysql InnoDB 数据更新 锁表

    一.数据表结构 1 2 3 4 5 6 7 8 9 10 CREATE TABLE `jx_attach` (   `attach_id` int(11) NOT NULL AUTO_INCREMEN ...

  3. Java对称与非对称加密解密,AES与RSA

    加密技术可以分为对称与非对称两种. 对称加密,解密,即加密与解密用的是同一把秘钥,常用的对称加密技术有DES,AES等 而非对称技术,加密与解密用的是不同的秘钥,常用的非对称加密技术有RSA等 为什么 ...

  4. C++中纯虚函数

    1.纯虚函数 virtual ReturnType Function()= 0; 纯虚函数可以让类先具有一个操作名称,而没有操作内容,让派生类在继承时再去具体地给出定义.凡是含有纯虚函数的类叫做抽象类 ...

  5. 从RTTI谈C++的向下转型

    转自:http://blog.chinaunix.net/uid-28541347-id-4251713.html 从RTTI谈C++的向下转型 1.什么是RTTI? RTTI 是“Runtime T ...

  6. The valid characters are defined in RFC 7230 and RFC 3986

    网上大都说什么发送格式与协议定义的不兼容,改tomcat版本或改编码之类的. 本人测试的时候换了个浏览器,不用IE就好了 如果坚持用ie,也有解决方式 @参考文章 成功的方法 在请求地址var url ...

  7. sqlserver 字符串拆分和取某分隔符之前的字符串

    ALTER FUNCTION [dbo].[f_splitSTR]( ), --待分拆的字符串 ) --数据分隔符 )RETURNS @re TABLE( col varchar(max)) AS B ...

  8. 9-最短路径(dijkstra)

    参考博客:http://www.wutianqi.com/?p=1890 #include <iostream>using namespace std;#define  max 1< ...

  9. 初学Hadoop之图解MapReduce与WordCount示例分析

    Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(GFS) ...

  10. 通过html5 的EventSource来进行数据推送

    以往我们要获取服务器的数据更新,一般通过ajax的定时请求,不过这样效率就低了.我们通过html5的EventSource可以很方便的获取服务器的数据更新,不过IE好像不支持.   例1如下: ind ...