-
//zoj1002 Fire Net
-
//Accepted 1002 C++ 00:00.01 436K
-
#include <stdio.h>
-
int n;
-
int max;
-
char map[5][5];
- bool canput(int x, int y)
-
{
-
int i,j;
-
if (map[x][y]!='.') return false;
-
for (i=x+1; i<n; i++){
-
if (map[i][y]=='X') break;
-
if (map[i][y]=='O') return false;
-
}
-
for (i=x-1; i>=0; i--){
-
if (map[i][y]=='X') break;
-
if (map[i][y]=='O') return false;
-
}
-
for (j=y+1; j<n; j++){
-
if (map[x][j]=='X') break;
-
if (map[x][j]=='O') return false;
-
}
-
for (j=y-1; j>=0; j--){
-
if (map[x][j]=='X') break;
-
if (map[x][j]=='O') return false;
-
}
-
return true;
-
}
- bool finish()
-
{
-
for (int i=0; i<n; ++i)
-
for (int j=0; j<n; ++j)
-
if (canput(i,j))
-
return false;
-
return true;
-
}
- void backtrack(int num)
-
{
-
if (finish()){
-
if (num>max) max = num;
-
return ;
-
}
-
for (int i=0; i<n; ++i)
-
for (int j=0; j<n; ++j)
-
if (canput(i,j)){
-
map[i][j] = 'O';
-
backtrack(num+1);
-
map[i][j] = '.';
-
}
-
}
-
void solve()
-
{
-
getchar();
-
for (int i=0; i<n; ++i){
-
for (int j=0; j<n; ++j)
-
scanf ("%c",&map[i][j]);
-
getchar();
-
}
-
max = 0;
-
backtrack(0);
-
printf ("%d/n",max);
-
}
-
int main()
-
{
-
#ifdef ONLINE_JUDGE
-
#else
-
freopen("1002.txt","r",stdin);
-
#endif
-
while (scanf("%d",&n)!=EOF && n)
-
solve();
-
#ifdef ONLINE_JUDGE
-
#else
-
fclose(stdin);
-
#endif
-
return 0;
-
}
相关推荐
C++游戏开发实战:从零构建局域网联机对战系统(附完整代码解析)
本文详细介绍了如何使用C++开发局域网联机对战游戏系统,涵盖从环境搭建到实战代码解析的全过程。重点讲解了Winsock库的应用、Socket通信原理、服务端与客户端开发技巧,以及性能优化和安全防护方案,帮助开发者快速掌握C++游戏开发的核心技术。
杭电1045(zoj1002)Fire Net
Fire Net Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7905 Accepted Submission(s): 4499 Problem Description Suppose that we have
使用Dify搭建音频文件转文本工作流
使用Dify搭建音频文件转文本工作流
zoj 1002 Fire Net(DFS~ 哈哈哈哈,终于过了!!!)
<br />1002 从一开始做ACM就郁闷的一道题,在1001下面它应该觉得压力很大啊!!哈哈。。<br /> <br />做完八皇后,党说这个能做了。。。<br /> <br />嘿嘿。这题是找放置最多数目的blockhouses(碉堡。。)使之不能同行同列,除非中间有个FIRENET。。。(同行同列就打中了。。)<br /> <br />开始想得比较复杂,按八皇后的思想,一行一行找,效果不好,一直不对,想明白了,一行不一定就放一个,一行也不一定放啊。。。当然,不放肯定全是防火墙了。。。<br /> <
Java黑皮书课后题第5章:*5.9(找出得最高分的前两个学生)编写程序,提示用户输入学生的个数、每个学生名字及分数,最后显示获得最高分的学生
*5.9(找出得最高分的前两个学生)编写程序,提示用户输入学生的个数、每个学生名字及分数,最后显示获得最高分的学生名字、次高分的学生名字题目题目概述next()读取一个字符与nextLine()读取一行破题代码 题目 题目概述 *5.9(找出得最高分的前两个学生)编写程序,提示用户输入学生的个数、每个学生名字及分数,最后显示获得最高分的学生名字、次高分的学生名字 使用Scanner类的next()方法而不是nextLine()方法来读取名字 next()读取一个字符与nextLine()读取一行 举个例子理
Android SystemUI——自定义状态栏和导航栏(十二)
通过前面的文章内容,我们了解了Android系统原生的状态栏StatusBar和车载系统状态栏CarStatusBar的启动流程以及视图构建流程,这里我们来简单的看一下自定义状态栏和导航栏视图的实现流程。
【二分图匹配】zoj1002Fire Net
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1002 题目描述:对一个给定的n*n的地图,放入炮塔,使得它们之间不冲突。当它们在同一行或同一列时且中间没有障碍物,冲突。求最多能放入多少炮塔。二分图匹配经典模型。#include <iostream> #include <cstdio> #include <cstring>
(三)UPF之Domain Coverage Relationship(Cover、Equivalent、Independent)
整个Soc架构中一般会存在多个Power Domain,不同的Power Domain之间也存在着一定的Coverage关系。在Cadence工具中,这种。不同的Domain Coverage关系中,各个Domain存在着一定的关联()。
ZOJ-1002 Fire Net
//这道题太经典了,刚开始还不晓得怎么做,然后看看解题报告,秒懂。。。。。,很难想到的就是以k从1到n*n递增,k/n表示x轴坐标,k%n表示y轴坐标。 AC代码: #include #include #define max 12 char map[max][max]; int n,sum; int can(int x,int y) { int i; for(i=x-1;i
AI智算-K8s+vLLM & Ray:DeepSeek-r1 671B 满血版分布式推理部署实践
自从上次发布 【AI-智算】K8s+SGLang实战:DeepSeek-r1:671b满血版多机多卡私有化部署全攻略] 文章后,本次将演示另一个主流推理引擎工具——vLLM,结合K8s、LWS、Ray、Volcano等技术栈,部署DeepSeek-r1 671b 满血版分布式推理集群,并对比其与SGLang推理引擎的性能表现。
ROS与深度相机入门教程:(1)Ubuntu16.04 在ROS中驱动Intel D435i深度相机
Intel在Github上开源了支持所有RealSense系列相机的SDK,包括了D400、SR300系列深度相机和T265双目跟踪相机,支持Linux、Windows、Mac OS以及Android,链接:https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md#installin...
ZOJ 1002 Fire Net 深度优先搜索算法
这道里原来我在看别人代码之前, 也写过。 洋洋洒洒的写了一个main函数四个嵌套for循环, 第一次的大手笔。运行结果没有问题, 但就是提交不上去, 还不收呢?搁置了好几天后, 没办法放弃。 后来看了一下别人的代码, 写完后提交编译错误, 都是因为跟系统函数重名缘故。 这道题的名头是,DFS(Depth-First-Search)深度优先搜索算法 #include "iostrea
MCU-内部flash模拟成EepRom(重新梳理)
通过fee写数据Data的过程中,数据会mapping一个虚拟地址,这个虚拟地址就是你的身份,在向flash写数据的过程中会写入很多相同虚拟地址的不同数据,在读取或切页的过程中,遍历数据只会认为最下面第一个的虚拟地址所持有的数据是有效数据,其他的都是老数据,可以丢弃。模拟成eeprom的两个eep_page写数据逻辑就是,先在eep_page0写数据,eep_page0写满后,将eep_page0的有效数据copy到eep_page1,之后擦eep_page0;
ZOJ 1002 Fire Net
简而言之,生成所有可能的碉堡放置方案,并通过判断每个方案是否合法,来寻找最大合法的碉堡数量。这个方法充分利用了暴力搜索和回溯的思想,通过递归遍历所有配置,最终找出最优解。
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
蓝牙模块HM-10手册
蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。
ZOJ1002-Fire Net
行 / 列 0 1 2 3 0 0 1 2 3 1 4 5 6 7 ...
Camera2Demo
在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作
[ZOJ1002] Fire Net
题目链接: 走这里 题目分析: 联想到Asteroids这道题,将行和列分别作为二分图的两边的点,把点本身作为二分图的边去处理 那么这个题的限制条件打不穿的墙怎么处理呢,发现这样的话 \[ ...X.. \] 其实左边那段和右边那段在横着考虑的时候是互不影响的,不妨对行和列重新编号 用一下某题解的剪枝讲解的图,样例第一个大概就是这个样子 然后对于每个空地的行编号和列编号连一条边,当空地...
ZOJ 1002 Fire Net Solution
static int solve(int map[][],int size){ if(size == 0) return 0; int result = 0; for(int row = 0; row < size; row++) for(int column = 0;column < size; column++){ if(map[row][column] == 0){
ZOJ 1002 Fire Net —— C++
Suppose that we have a square city with straight streets. A map of a city is a square board with n rows and n columns, each representing a street or a piece of wall. A blockhouse is a small castle tha...
ZOJ1002Fire net C++
Fire Net Time Limit: 2000 msMemory Limit: 65536 KB Suppose that we have a square city with straight streets. A map of a city is a square board with n rows and n columns, each representing a street or a piece of wall. A blockhouse is a small castle that has
ZOJ-1002 Fire Net
题目链接:https://zoj.pintia.cn/problem-sets/91827364500/problems/91827364501 【题目大意】 n行n列的地图,地图中黑色格子代表墙壁(输入样例中的‘X’),可以挡住子弹。地图中的白色格子代表空地(输入样例中的’.’),可放置碉堡。碉堡可以发射子弹,被子弹射中的碉堡将会被摧毁。现需在地图中放置碉堡,放置要求如下:任意两个碉堡之间不能相互摧毁,即相同行和相同列都不能出现两个及两个以上碉堡,除非碉堡之间有墙壁阻挡子弹。在以上要求下,求在给定地图中能
ZOJ1002 Fire Net
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1002 #include<stdio.h> #define true 1 #define false 0 char map[4][4]; int vis[4][4]; int max,count; int n; int is_ok(int a,...
[题解] ZOJ1002 -- Fire Net
Java复习
zoj 1002 Fire Net
用dfs来做~~但注意每次dfs回来后需要恢复到进入dfs前的状态。。。 /** map 0表示无wall houseblock 1表示 houseblock -1表示wall flagr 0 表示指定行无wall houseblock 1表示指定行有houseblock -1表示指定行有wall 当指定行有wall时,优先级最高,一定为
444



被折叠的 条评论
为什么被折叠?



