1. 程式人生 > >1045 Fire Net 炮臺問題(類似八皇后問題)深搜演算法DFS

1045 Fire Net 炮臺問題(類似八皇后問題)深搜演算法DFS

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 four openings through which to shoot. The four openings are facing North, East, South, and West, respectively. There will be one machine gun shooting through each opening. 

Here we assume that a bullet is so powerful that it can run across any distance and destroy a blockhouse on its way. On the other hand, a wall is so strongly built that can stop the bullets. 

The goal is to place as many blockhouses in a city as possible so that no two can destroy each other. A configuration of blockhouses is legal provided that no two blockhouses are on the same horizontal row or vertical column in a map unless there is at least one wall separating them. In this problem we will consider small square cities (at most 4x4) that contain walls through which bullets cannot run through. 

The following image shows five pictures of the same board. The first picture is the empty board, the second and third pictures show legal configurations, and the fourth and fifth pictures show illegal configurations. For this board, the maximum number of blockhouses in a legal configuration is 5; the second picture shows one way to do it, but there are several other ways. 



Your task is to write a program that, given a description of a map, calculates the maximum number of blockhouses that can be placed in the city in a legal configuration. 

相關推薦

1045 Fire Net 炮臺問題類似皇后問題演算法DFS

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 pie

#1497 : Queen Attack類似皇后經典問題的判斷

描述There are N queens in an infinite chessboard. We say two queens may attack each other if they are in the same vertical line, horizontal

一步一步寫演算法皇后

【 宣告:版權所有,歡迎轉載,請勿用於商業用途。  聯絡信箱:feixiaoxing @163.com】    八皇后是一道很具典型性的題目。它的基本要求是這樣的:在一個8*8的矩陣上面放置8個物體,一個矩陣點只允許放置一個物體,任意兩個點不能在一行上,也不能在一列上,不能在

全排列 遞迴非字典序 字典序

全排列問題初探,不含重複元素情況的討論。 糊的題目: 【題目描述】 給定一個由不同的小寫字母組成的字串,輸出這個字串的所有全排列。 我們假設對於小寫字母有‘a’ <‘b’ < ... <‘y’<‘z’,而且給定的字串中的字母已經按照從小到大的順

HDU 1045 Fire Net 詳細題解二分圖經典模型

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 pie

1045 Fire Net 縮點建圖+二分圖

Fire Net Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 14784    Accep

HDU 1045 Fire Net二分圖最大匹配

#include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<iostream> #include<algorithm> #include<

HDU 1045 Fire Net建模,用二分匹配

參考kuangbin教主的解法,連結http://www.cnblogs.com/kuangbin/archive/2011/08/09/2132830.html。 但是感覺他的建模有點問題. Suppose that we have a square city with

HDU 1045 Fire Net搜尋剪枝

http://acm.split.hdu.edu.cn/showproblem.php?pid=1045 題目連結(總有一個可以點開)…… 題意:給出一張地圖,上面只有兩種字元(.和X),X相當於無法穿透的牆。問這張地圖上最多可以放置多少個互不攻擊的子彈…… 第一反應是

hdu 1045 Fire Net回溯搜尋

搜尋,回溯!!!人的一生避免不了會犯一些小錯誤!!! 那麼犯錯錯誤可以回頭的!不可以一直錯下去的!!! #include<stdio.h> #include<string.h> int visit[10][10]; char map[10][10];

【HDU-1045,Fire Net-純暴力簡單DFS

n! closed 實現 problem 由於 gif open pan alt 原題鏈接:點擊! 大致題意:白塊表示可以放置炮臺的位置——每個炮臺可以攻擊到上下左右的直線上的炮臺(也就是說在它的上下左右直線上不可以再放置炮臺,避免引起互相攻擊),黑塊表示隔離墻的位置

Spring.NET教程整合NHibernate(基礎篇)

uil com red port log4net odbc con 其它 get Spring.net對NHibernate提供了很好的支持與封裝。Spring.Data.NHibernate.Generic.Support和Spring.Data.NHibernate.S

hdu 1045 Fire Net 【二分圖匹配】

進行 col numbers res clu 意思 archive 多少 color <題目鏈接> <轉載於 >>> > 題目大意: 這題意思是給出一張圖,圖中‘X‘表示wall,‘.‘表示空地,可以放置炮臺,同一條直線上只

HDU 1045 Fire Net 【連通塊的壓縮 二分圖匹配】

題目:http://acm.hdu.edu.cn/showproblem.php?pid=1045 Fire Net Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Jav

hdu 1045(dfs類似8皇后

Fire Net Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 15746 &nb

HDU 1045 Fire Net 二分圖建圖

HDU 1045 題意:   在一個n*n地圖中,有許多可以擋住子彈的牆,問最多可以放幾個炮臺,是的炮臺不會相互損害。炮臺會向四面發射子彈。 思路:   把行列分開做,先處理行,把同一行中相互聯通的點縮成一個點。再處理列,同樣縮成一個點。然後把行列中,交點不是牆的點連一條邊。對這個圖跑網路流或者二分圖

HDU 1045 Fire Net

題目連結:傳送門 Problem Description Suppose that we have a square city with straight streets. A map of a city is a square board with n rows and

區域性搜尋演算法求解皇后問題

區域性搜尋演算法是一種簡單的貪心搜尋演算法,是解決最優化問題的一種啟發式演算法,該演算法每次從當前解的臨近解空間中根據啟發函式選擇一個最優解(也不一定是最優解)作為當前解,直到達到一個區域性最優解。本文以求解八皇后問題來描述爬山法,模擬退火法以及遺傳演算法。 目錄 一、

HDU-1045 Fire Net

可以直接dfs暴搜,也可以轉化為二分圖匹配問題 每一行連續的片段可以縮為一個點,列上連續的片段也是,因為連續的片段最多放一個點 就分為行片段,列片段兩部分,他們的交點就是邊,求最大匹配就是最多可以放的點 dfs暴搜程式碼: #include<iostream&g

【無私分享:ASP.NET CORE 專案實戰】讀取配置檔案 讀取自定義配置檔案

目錄索引 簡介   但隨之產生了問題:我們使用的是在 Startup.cs 中(如下圖)來實現配置讀取,有兩個問題 ① 我們如果定義N種配置,是否要再這裡新增N條這樣的配置 ; ② 如果我們的配置不想寫在appsettings.json中呢     解決問題