好久没有做ACM的题目了,今天用Java来回顾一下,花了1个多小时做了ZJU的1002 Fire Net
用了类似八皇后问题的回溯。
现在已经通过。
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=2
另求高手指教
package acm.be.persist;
import java.util.Scanner;
/*
* FireNet 1002
* 2011/2/26
* Jiang
*/
public class Main {
public int result = 0, n;
public char[] tem[];
public void put(int x, int y, int count) {
if (x == n-1 && y == n-1) {
if(count > result){
result = count;
}
return;
}
if (y == n-1) {
y = -1;
x = x + 1;
}
if(tem[x][y+1] == '.' && judge(x, y+1)){
tem[x][y+1] = ' ';
put(x, y+1, count + 1);
tem[x][y+1] = '.';
}
put(x, y+1, count);
}
public boolean judge(int x, int y) {
for (int i = x - 1; i >= 0; i--) {
if (tem[i][y] == 'X') {
break;
}
if (tem[i][y] == ' ')
return false;
}
for (int i = y - 1; i >= 0; i--) {
if (tem[x][i] == 'X')
break;
if (tem[x][i] == ' ')
return false;
}
return true;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Main fireNet = new Main();
fireNet.n = Integer.parseInt(sc.next());
while(fireNet.n != 0){
fireNet.tem = new char[fireNet.n][fireNet.n];
for (int i = 0; i < fireNet.n; i++) {
fireNet.tem[i] = sc.next().toCharArray();
}
for (int i = 0; i < fireNet.n; i++) {
for (int j = 0; j < fireNet.n; j++) {
if (fireNet.tem[i][j] == '.') {
fireNet.tem[i][j] = ' ';
fireNet.put(i, j, 1);
fireNet.tem[i][j] = '.';
}
}
}
System.out.println(fireNet.result);
fireNet.result = 0;
fireNet.n = Integer.parseInt(sc.next());
}
}
}
分享到:
相关推荐
NULL 博文链接:https://weitch.iteye.com/blog/1006972
Firefox 52.0.2 渗透便携版 90SEC beta8 含多个文件 Firefox 52.0.2 渗透便携版 90SEC beta8 Firefox 52.0.2 渗透便携版 90SEC beta8 Firefox 52.0.2 渗透便携版 90SEC beta8 Firefox 52.0.2 渗透便携版 90SEC beta8...
fire_bug组件fire_bug组件fire_bug组件fire_bug组件fire_bug组件fire_bug组件fire_bug组件fire_bug组件fire_bug组件fire_bug组件fire_bug组件fire_bug组件
tibco spotfire中文帮助文档
**标题详解:**“支持Flash插件的Firefox火狐浏览器” 在互联网的早期,Adobe Flash是一种广泛用于创建动态内容和多媒体交互的技术。然而,随着HTML5等更现代、更安全的替代品出现,Adobe公司宣布在2020年底停止对...
欢迎使用 TIBCO Spotfire®! TIBCO Spotfire 使您可以轻松访问、分析及创建数据的动态报告。通过让您快速确定关键业务数据中的趋势和模式,TIBCO Spotfire 提供了您是否是市场研究员、销售代表、科学家或加工工程师...
Deepin Linux 安装最新版 Firefox火狐浏览器详解 在 Deepin Linux 操作系统中,安装最新版的 Firefox 火狐浏览器可以通过下载最新版的 Firefox 压缩包并解压缩来实现。下面是详细的安装步骤: 首先,用户需要在 ...
标题中的“让FireFox支持OCX插件的安装包”指的是通过特定的手段使得Mozilla Firefox浏览器能够识别并运行OCX(Object Control Extension)插件。OCX插件是微软Windows平台下的一种ActiveX技术,主要用于扩展应用...
firefox firefox firefox firefox firefox firefox firefox firefox firefox
Firefox Setup 41.0.exe Firefox Setup 52.3.0esr.exe Firefox Setup 52.9.0esr.exe Firefox-Setup-86-60.0.2.exe 火狐浏览器(Mozilla Firefox)是一款由Mozilla基金会和志愿者共同开发的开源网络浏览器,以其高度...
Kindle Fire HD 8.9是一款由亚马逊推出的平板电脑,以其大尺寸的8.9英寸显示屏和相对亲民的价格受到了不少用户的喜爱。然而,作为一款电子产品,用户有时可能需要进行刷机操作,以更新系统、解决设备问题或者个性化...
Mozilla Firefox,通称Firefox,中文也通称火狐,是一个自由及开源的网页浏览器[14],由Mozilla基金会及其子公司Mozilla公司开发。Firefox支持Windows、macOS及Linux,其移动版支持Android及Firefox OS,这些版本的...
Spotfire如何实现自定义图
firefox-3.0.1firefox-3.0.1firefox-3.0.1firefox-3.0.1firefox-3.0.1firefox-3.0.1firefox-3.0.1firefox-3.0.1firefox-3.0.1firefox-3.0.1firefox-3.0.1firefox-3.0.1firefox-3.0.1firefox-3.0.1firefox-3.0.1fire...
火狐浏览器 59 版本,firefox 59版本,直接点击安装。
1. **无缝集成**:Firefox CHM Reader能够无缝融入Firefox的浏览器环境,用户只需点击或拖放CHM文件到浏览器,即可开始阅读,无需离开当前浏览界面。 2. **全文搜索**:支持在CHM文件内进行全文搜索,帮助用户快速...
《Firefox3.6迅雷插件详解与安装指南》 在互联网高速发展的今天,浏览器与各种插件的配合使用已经成为用户提升浏览体验的重要方式。Firefox3.6作为一款深受用户喜爱的开源浏览器,其功能强大且自定义性强,但有时会...
firefox浏览器52.3 arm版本
firefox75版本 arm firefox_75.0+build3-0kylin1_amd64.deb
adguard_firefox浏览器插件 20230618