Fire Net ZOJ - 1002
题意:
一个n * n 的棋盘 上面有些障碍物 放棋子 棋子不能在同一行 同一列 但可以在同一行或同一列隔着障碍物放
这题与poj1321 的思想差不多
对于一个位置 有两种状态放还是不放
参数inx 从1到n*n递增 inx/n表示x轴坐标 inx%n表示y轴坐标
k 为当前所用的棋子
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;
const int maxn = , INF = 0xfffffff;
typedef long long LL;
char str[maxn][maxn];
int vis[maxn][maxn];
int n, minn;
int check(int x,int y)
{
for(int i=x-; i>=; --i)
{
if(vis[i][y])
return ;
if(str[i][y] == 'X')
break;
}
for(int i=y-; i>=; --i)
{
if(vis[x][i])
return ;
if(str[x][i] == 'X')
break;
}
return ;
} void dfs(int inx, int k)
{
if(inx == n*n)
{
minn = max(k, minn);
return;
} int x = inx / n;
int y = inx % n;
if(str[x][y] == '.' && check(x,y))
{
vis[x][y] = ;
dfs(inx+, k+);
vis[x][y] = ;
}
dfs(inx+, k);
} int main()
{
while(cin>>n && n)
{
minn = -INF;
mem(vis,);
mem(str,);
for(int i=;i<n;i++)
cin>>str[i];
dfs(,);
cout<<minn<<endl; }
return ;
}
Fire Net ZOJ - 1002的更多相关文章
- DFS ZOJ 1002/HDOJ 1045 Fire Net
		题目传送门 /* 题意:在一个矩阵里放炮台,满足行列最多只有一个炮台,除非有墙(X)相隔,问最多能放多少个炮台 搜索(DFS):数据小,4 * 4可以用DFS,从(0,0)开始出发,往(n-1,n-1 ... 
- zoj 1002 Fire Net (二分匹配)
		Fire Net Time Limit: 2 Seconds Memory Limit: 65536 KB Suppose that we have a square city with s ... 
- [ZOJ 1002] Fire Net (简单地图搜索)
		题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1002 题目大意: 给你一个n*n的地图,地图上的空白部分可以放棋 ... 
- ZOJ 1002:Fire Net(DFS+回溯)
		Fire Net Time Limit: 2 Seconds Memory Limit: 65536 KB Suppose that we have a square city with s ... 
- ZOJ 1002 Fire Net(dfs)
		嗯... 题目链接:https://zoj.pintia.cn/problem-sets/91827364500/problems/91827364501 这道题是想出来则是一道很简单的dfs: 将一 ... 
- [ACM_图论] Fire Net (ZOJ 1002 带障碍棋盘布炮,互不攻击最大数量)
		Suppose that we have a square city with straight streets. A map of a city is a square board with n ... 
- ZOJ 1002 Fire Net
		题目大意:有一个4*4的城市,其中一些格子有墙(X表示墙),在剩余的区域放置碉堡.子弹不能穿透墙壁.问最多可以放置几个碉堡,保证它们不会相互误伤. 解法:从左上的顶点开始遍历,如果这个点不是墙,做深度 ... 
- zoj 1002 Fire Net 碉堡的最大数量【DFS】
		题目链接 题目大意: 假设我们有一个正方形的城市,并且街道是直的.城市的地图是n行n列,每一个单元代表一个街道或者一块墙. 碉堡是一个小城堡,有四个开放的射击口.四个方向是面向北.东.南和西.在每一个 ... 
- ZOJ 1002 DFS
		Fire Net Time Limit: 2 Seconds Memory Limit: 65536 KB Suppose that we have a square city with s ... 
随机推荐
- 如何利用Skyline的TerraExplorer Pro 6.5提供的API接口实现矢量图层数据的动态投影
			Skyline 支持国内常见的地图投影坐标系,包括WGS84.Beijing54.西安80.2000坐标系等,也可以自定义坐标系,比如一些做过参数变换加密的坐标系等. <!DOCTYPE htm ... 
- vba  弹框
			'第三个按钮,上传数据到数据库 Private Sub CommandButton1_Click() str1 = "abcde" str2 = InputBox("请输 ... 
- GridView控件中Checkbox实现单选
			在GridView控件中,第0列有放一个CheckBox控件,现想实现对CheckBox进行单选. 先看看效果: 在ASPX页面,可以这样做: 有一点注意的是需要使用OnRowCreated事件. 在 ... 
- JSON WEB TOKEN,简单谈谈TOKEN的使用及在C#中的实现
			十年河东,十年河西,莫欺少年穷. 学无止境,精益求精. 突然发现整个十月份自己还没有写一篇博客......哎,说出来都是泪啊,最近加班实在实在实在是太多了,真的没有多余的时间写博客.这不,今天也在加班 ... 
- EF5.0区别于EF4.0的crud区别
			public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet<T>().AddObject(entity); // ... 
- yum源使用的几个报错小总结  (例如: python2.6.6 下yum不能使用: No module named yum)
			服务器上的yum突然不好使用,使用yum时有如下几个保持,解决方案如下: 1)Error: Cannot retrieve repository metadata (repomd.xml) for r ... 
- PHP从入门到精通(一)
			(一)PHP简介和基本知识 PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于 ... 
- 《Linux内核设计与实现》第八周读书笔记——第四章 进程调度
			<Linux内核设计与实现>第八周读书笔记——第四章 进程调度 第4章 进程调度35 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配 ... 
- Practice2 结对子之“小学四则运算”
			开发环境:Eclipse,js,css,html 程序完成的方向: 1.可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号.如: 2*(-4) = ... 
- QT下opencv的编译和使用
			需要的文件 qt-opensource-windows-x86-mingw491_opengl-5.4.0.exe cmake-3.12.0-rc1-win64-x64.msi opencv-2.4. ... 
