Problem : 火力网

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

Problem G: 火力网

Description
给你张NN的地图,地图上有墙,用"X"表示,有空地,用” . "表示。空地上可以放兵,每个兵可以攻击他的上下左右四条直线范围(不能穿墙)
问在防止互相误伤的前提(任何一个兵不在其他兵射程之内),最多摆放多少个兵。
Input
第一行给出一个数字n
以下n行是N
N的地图(0<=n<=8)
Output
对应每组数据最多能放多少兵,每组数据占一行。
Sample Input
4
.X…

XX…

Sample Output
5
HINT

#include<bits/stdc++.h>
using namespace std;
int a,b,ans;
bool mp[100][100];
char cmp[100][100];
void dfs(int x,int y){
    bool tot[100][100];
    if(x==a+1){
        if(ans>b)
            b=ans;
            return;
    }
        if(mp[x][y]==true){
            ans++;
            int asd=y;
            memcpy(tot,mp,sizeof(tot));
            while(asd<=a){
                if(mp[x][asd]==false)
                    break;
                    mp[x][asd]=false;
                    asd++;
            }
                int fgh=x+1;
                while(fgh<=a){
                    if(mp[fgh][y]==fals
C++二分图匹配基础:zoj1002 FireNet 火力网 直接给出题目吧。。。 问题 D(1988): 【高级算法】火力网 时间限制: 1 Sec 内存限制: 128 MB 题目描述 给出一个N*N的网格,用’.'表示空地,用’X’表示墙。在网格上放碉堡,可以控制所在的行列,但不能穿过墙。 问:最多能放多少个碉堡? 输入 第1行:一个整数N(N<=20) 接下来N行,每行N个字符 输出 第1行:1个整数,表示最多可放碉堡数。 样例输入 4 .... 阅读详情

相关推荐

zoj1002 FireNet 火力网 C++ 二分图匹配

题目描述 给出一个N*N的网格,用'.'表示空地,用'X'表示墙。在网格上放碉堡,可以控制所在的行列,但不能穿过墙。 问:最多能放多少个碉堡? 例如,下图最多可放5个碉堡(黑色圆点) 样例输入 4 .X.. .... XX.. .... 2 XX .X 3 .X. X.X .X. 3 ... .XX .XX 4 .... ....

AZUI _ oi memories 2042

HDU1045:Fire Net(DFS)

Fire Net#include &lt;bits/stdc++.h&gt; using namespace std; int Maxn, n; char board[5][5]; bool canPut(int x, int y) { if(board[x][y] == 'X') return false ;//can't put in this place ...

ccshijtgc的专栏 235

【USACO】Space Exploration dfs

【USACO】Space Exploration 时间限制: 1.000 Sec 内存限制: 64 MB 题目描述: Farmer John’s cows have finally blasted off from earth and are now floating around space in their Moocraft. The cows want to reach their fiery kin on Jupiter’s moon of Io, but to do this they must

esxwht的博客 444

火力网2

继续上一篇

程序碎片 539

C++算法——DFS(图解)

前言 刚接触BFSDFS的你是不是搞不明白两个的区别?(其实学完了也没明白 щ(゚Д゚щ) ),但是人类通过图片能得到远高于文字的记忆力理解力,走迷宫也是从小就玩过的游戏,那么今天我就通过简单的迷宫来让你明白这两个算法。 迷宫 我自己瞎编一个,0是路,2是入口,3是出口 0 0 1 0 1 2 1 0 0 3 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 也就是 如果是人来玩的...

qq_44616044的博客 7515

【C/C++】DFS算法详解

DFS(Depth-First Search)即深度优先搜索,是一种用于遍历或搜索树或图的算法。在进行DFS时,从起始顶点开始沿着一条路径尽可能深地搜索,直到该路径上所有顶点都被访问过,然后回溯到上一个节点,继续深入搜索其他路径,直到所有节点都被访问过为止。DFS常用于解决迷宫问题、拓扑排序、连通性检测等各种应用场景。DFS的基本原理是利用递归或栈的数据结构来实现。DFS的优点是实现简单、易于理解,适用于解决许多问题,但也存在一些缺点,比如可能会陷入无限循环(对于非连通图)、不一定能找到最短路径等。

WillZhong2012的博客 979

Fire Net

dfs 题目大意 现在有一个N*N的地图地图上有一些围墙。你的任务是在没有围墙的空白地方建尽可能多的炮台。 假设炮台可以向“上下左右”四个方向发射子弹,子弹可以穿越任何距离并可在途中摧毁一个一个炮台。而墙壁结构坚固,可以阻止子弹。 现在你的目标是尽可能多地在地图中设置炮台,并且保证炮台不会互相摧毁。 题目思路 对于每一个点遍历,如果可以放置就作一个标记,如果不能放置就继续遍历下一个点。直到所有点都被遍历。 #include<stdio.h> int n,i,j,ans; char s[5]

qq_47783181的博客 355

火力网问题的Java实现

Java实现火力网问题的解决,解决n*n的网格中碉堡的布置问题,算法课思考题

qq_52591547的博客 517

zoj 1002 Fire Net 碉堡的最大数量【DFS】

题目链接 题目大意: 假设我们有一个正方形的城市,并且街道是直的。城市的地图是n行n列,每一个单元代表一个街道或者一块墙。 碉堡是一个小城堡,有四个开放的射击口。四个方向是面向北、东、南西。在每一个口子上有一架机关枪。 假设子弹能够穿过任何距离,并且摧毁路上的碉堡。另一方面,子弹不能穿越墙。 我们的目标是在城市里设置足够多的碉堡,并且任何两个碉堡都不会互相摧毁。正确的配置是没有两个碉堡...

weixin_30480075的博客 289

火力网(匈牙利算法)

给出一个N*N的网格,用’.'表示空地,用’X’表示墙。在网格上放碉堡,可以控制所在的行列,但不能穿过墙。我们可以把独立的每一行好每一列(中间没有墙)当做X部Y部,然后再把有公共顶点的连边,然后再跑匈牙利就可以了。匈牙利匹配问题,不会的可以看。问:最多能放多少个碉堡?

fzyyyyyyyy的博客 280

火力网加强版(difficult) SSL_1124 (最大匹配)

Description  假定我们有一个正方形的城市,拥有笔直的街道。城市由n行n列正方形的地块组成,每一块表示一个街道或一堵墙。   碉堡就是一个小的城堡,有四个用于射击的口子。这四个口子分别朝着东、南、西、北方向。每一个口子都有一个用于射击的机关枪。   我们假定子弹力量很大,足以射到任何距离,并且破坏线路上的碉堡。另一方面,一堵墙非常牢固可以挡住子弹。   我们的目标就是在城市上

G2523054231的博客 929

火力网的c语言代码,递归调用

假设我们有一个直街道广场的城市。一个城市的地图用n行n列的方形板,每一个代表一个街道或一块墙。 一个碉堡就是一个小城堡,有四个开口用以射击。四开口面朝北,东,南,西,分别。会有一个机枪射击通过每个开口。 在这里,我们假定子弹是如此强大,它可以运行在任何距离毁灭的道路上一个碉堡。另一方面,墙是如此强烈地建成,可以阻止子弹。 其目标是把城市中的许多碉堡使没有两个可以摧毁对方。一个配置的碉堡是法律规...

brightendavid的博客 943

火力网

浙大ACM1002

程序碎片 847

实验12:Problem I: 成绩排序

Home Web Board ProblemSet Standing Status Statistics Problem I: 成绩排序 Problem I: 成绩排序 Time Limit: 1 SecMemory Limit: 128 MBSubmit: 490Solved: 403[Submit][Status][Web Board]...

weixin_30616969的博客 704

Problem G: 补提交 (解题报告)

补提交 Description  TOM给自己定了一个宏伟的目标:连续100天每天坚持在zcmu上提交一个程序。100天过去了,tom查看自己的提交记录发现有N天因为贪玩忘记提交了。于是TOM要来M张"补提交卡"。每张"补提交卡"都可以补回一天的提交,将原本没有提交程序的一天变成有提交程序的一天。tom想知道通过利用这M张补提交卡,可以使自己的"最长连续提交天数"最多变成多少天。

并非所有流浪者都迷失了自我 487

Java算法---求面积

今天在做牛客网编程题时遇到了这样一个问题,分享一下: 题目描述:        给你一张n*m的西湖地图二值图,其中西湖的轮廓用1表示,轮廓内核轮廓外均用0表示。 现在请你统计西湖的面积,即轮廓内0的个数。 输入描述:        输入包含多组数据,每组数据第一行包含两个正整数n(3≤n≤10)m(3≤m≤10)。紧接着有n行,每行m个数字,代表地图,数字之间无空格。数据保证只有一片

华夏紫云的博客 3628

leetcode1162地图分析java题解(动态规划)

1.题目 你现在手里有一份大小为 N x N 的『地图』(网格) grid,上面的每个『区域』(单元格)都用 0 1 标记好了。其中 0 代表海洋,1 代表陆地,你知道距离陆地区域最远的海洋区域是是哪一个吗?请返回该海洋区域到离它最近的陆地区域的距离。 我们这里说的距离是『曼哈顿距离』( Manhattan Distance):(x0, y0) (x1, y1) 这两个区域之间的距离是 |...

老简单题 1041

基础算法系列总结:回溯算法(解火力网问题)

理论辅助: 回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。用回溯算法解决问题的一般步骤为: 1、定义一个解空间,它包含问题的解。 2、利用适于搜索的方法组织解空间。 3、利用深度优先法搜索解空间。 4、利用限界函数避免移动到不可能产生解的子空间。 问题的解空间通常是在搜索问题的解的过...

weixin_33724059的博客 480
上一篇: Problem : [Usaco2014 Mar]Cow Art
下一篇: Problem : 等式
Cancelleds
博客等级 码龄8年 1107粉丝 166原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值