HDU 4414 Finding crosses(搜索)

題目鏈接:HDU 4414 Finding crosses


【題目大意】

給你一張n*n的圖,由o #這兩個元素組成,讓我們找其中有多少十字架。 十字架由#構成

十字架的縱向長度等于橫向長度 , 且這個長度要為大于等于3的奇數。

構成十字架的#周圍不能有多余的#


如圖1滿足條件, 圖二不滿足,圖三不滿足,圖四不滿足, 這三個不滿足的條件都是有了多余的#;


【解法】

對每個有#元素的位置bfs , 一層一層的擴展,每次擴展檢測周圍是否有多余的#,沒有就繼續擴展, 有就返回0,不能擴展了就判斷是否為合格的十字架。


【源代碼】

#include <iostream>
#include <cstdio>
using namespace std;
char map[55][55];
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};int n;
bool bfs(int a,int b){int ans = 0;int cnt = 0;for(int i=1;i<=25;i++){int step = 0;for(int j=0;j<4;j++){int nx = a+dx[j]*i; //*i, 實現一層層擴展int ny = b+dy[j]*i;if(nx<0 || nx>=n|| ny<0|| ny>=n) continue;if(map[nx][ny] == '#'){step++;if(j==2 || j==3){if(ny>0 && map[nx][ny-1] == '#' || ny<n-1 &&map[nx][ny+1]=='#') //判斷相鄰的位置是否有 #return false;}else{if(nx>0 && map[nx-1][ny] == '#' || nx<n-1 &&map[nx+1][ny]=='#') //判斷相鄰的位置是否有 #return false;}cnt++;}}if(step == 0) break;不能擴展了就跳出循環if(step != 4) //說明沒有完全擴展return false;}if(cnt%2==0&& cnt>0)return true;elsereturn false;
}
int main(){while(scanf("%d",&n)!=EOF && n){for(int i=0;i<n;i++){for(int j=0;j<n;j++){scanf(" %c",&map[i][j]);}}int ans = 0;for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(map[i][j] == '#'){ans+= bfs(i,j);}}}printf("%d\n",ans);}return 0;
}


轉載于:https://www.cnblogs.com/chaiwenjun000/p/5321164.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258371.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258371.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258371.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mongodb檢查點_Mongodb 日志原理和操作

日志原理&#xff1a;WiredTiger使用檢查點在磁盤上提供一致性數據視圖&#xff0c;并允許MongoDB從上一個檢查點恢復。 但是&#xff0c;如果MongoDB在檢查點之間意外退出&#xff0c;則需要使用日志記錄來恢復上次檢查點之后發生的信息。通過日志記錄&#xff0c;恢復過程如下…

UILabel 根據text的內容來調整大小

有時候&#xff0c;在UILabel的text過長的時候&#xff0c;我們需要讓label進行自適應大小&#xff0c;之前我們必須要獲得這個UILabel的size&#xff0c;這便是根據text的內容和性質&#xff08;字體&#xff0c;行間距等決定的&#xff09;。 在ios7中&#xff0c;使用boundi…

遞歸和分治思想及其應用

目錄 遞歸和分治思想一些實例逆序輸出字符串查找數組元祖是否存在漢諾塔問題八皇后問題更多&#xff1a;遞歸和分治思想 如果可以使用迭代&#xff0c;盡量別使用遞歸。由編譯原理可以知道&#xff0c;每次自調用的時候&#xff0c;計算機都需要保存在調用&#xff0c;浪費時間…

AM+PM+FM基本調制原理及相關理論

總論&#xff1a; 調制信號&#xff1a; 模擬信號m(t)&#xff0c;可以是正弦波信號、方波信號等任意信號&#xff0c;又稱基帶信號 載波信號&#xff1a;一般為正弦波信號 已調信號&#xff1a; 幅度調制AM---A(t)隨m(t)成比例變化----線性調制 相位調制PM---隨m(t)成比…

unix網絡編程 的環境配置

<unix網絡編程> 的環境配置 首先在網上下載UNP的庫文件&#xff0c;然后就可以安裝學了。我的系統環境&#xff1a; 2.6.32-131.0.15.el6.i686 #1 SMP Sat Nov 12 17:30:50 CST 2011 i686 i686 i386 GNU/Linux LSB Version: :base-4.0-ia32:base-4.0-noarch:core-4.0-…

win32 api 文件操作!

CreateFile打開文件要對文件進行讀寫等操作&#xff0c;首先必須獲得文件句柄&#xff0c;通過該函數可以獲得文件句柄&#xff0c;該函數是通向文件世界的大門。ReadFile從文件中讀取字節信息。在打開文件獲得了文件句柄之后&#xff0c;則可以通過該函數讀取數據。WriteFile向…

小說里的lt什么意思_游戲cpdd網絡用語是什么意思 王者榮耀里很常見

[閩南網]隨著互聯網的發展&#xff0c;越來越多的流行語橫空出世&#xff0c;在網絡上得到廣泛使用。當一個網絡語流行的時候&#xff0c;不管在微博上還是貼吧里&#xff0c;都會看見和流行語有關的句子和表情包。眼下在各種游戲里&#xff0c;總是能看到游戲玩家們說“cpdd”…

POJ 1637 Sightseeing tour 混合圖歐拉回路存在性判斷

沒有想到網絡流還能解決這一類問題&#xff0c;完全想不到_ 一開始把所有的無向邊制定任意方向有當做有向邊看&#xff0c;然后統計每個點的入度和出度。以前有向圖的歐拉回路判定是每個點的入讀都等于出度&#xff0c;這樣可以保證可以回到起點&#xff0c;現在在一些邊可以調…

linux系統 硬鏈接和軟鏈接

背景&#xff1a; 當幾個用戶同在一個項目里工作時。經常須要共享文件。假設一個共享文件同一時候出如今屬于不同用戶的不同文件夾下。工作起來就非常方便。比如B和C文件夾下有一文件D是兩者都能夠訪問和改動的共享文件&#xff0c;這樣是非常方便&#xff0c;但也會有一些問題…

jquery純數字驗證

$(document).ready(function(){ //純數字驗證,只讓輸入數字,比如-號等都不然輸入。 $(#user-defined).unbind(); $(#user-defined).bind(keyup change,function () { $(this).val($(this).val().replace(/\D/g,));}); });轉載于:https://www.cnblogs.com/kuiyeit/p/47940…

閃電模型數學_最經典的數學模型

最經典的數學模型怎樣得到最好的女孩子的數學模型【關鍵詞】怎樣得到最好女孩子數學模型由于老天爺在你的生命中安排的異性并不是同時出現任你挑選&#xff0c;因此無論你在何時選擇結婚都是有機會成本的。人們常常希望能夠獲得一個最可愛的人作為自己的伴侶。但是&#xff0c;…

最近提交一個mysql5.7的bug,提醒自己以后注意寫SQL要規范

最近幫朋友提交一個mysql5.7的bug , oracle mysql 的大神還回復我 , 以后注意書寫sql規范 , 潛臺詞是不是不要給他們增加工作量 https://bugs.mysql.com/bug.php?id86610轉載于:https://www.cnblogs.com/kelvin19840813/p/7052983.html

openssl 學習之從證書中提取RSA公鑰N 和 E

原文鏈接: http://blog.csdn.net/kkxgx/article/details/19850509 通常數字證書包含很多信息&#xff0c;其中N和E值即我們稱為的公鑰。如何從PEM 或者DER格式的證書中提出證書呢&#xff1f;下面給出代碼實現從PEM和DER編碼的證書中提出N、E。 [cpp] view plaincopy #include …

獲得漢字字符個數

//獲得漢字字符個數function ChineseWordsCount(text:string):Integer;var i,sum,e,c,t: Integer;begin Result:0; c : 0; sum : Length(text); if Sum0 then exit; for i : 0 to sum do begin if Ord(text[i]) > 127 then begin Inc(c); end; end;…

2020湖南省技能競賽獲獎名單_2020年湖南省職業院校技能競賽學院獲獎情況通報...

由湖南省教育廳、湖南省人力資源和社會保障廳、湖南省農業農村廳等30個單位聯合舉辦的2020年湖南省職業院校技能競賽于2019年12月28日已經圓滿結束所有競賽項目&#xff0c;我院選派了190名選手參加了園林景觀設計與施工、雞新城疫抗體水平測定、集成電路開發及應用、農機維修、…

Web browser的發展演變

我們每天都在使用著瀏覽器&#xff0c;每個人使用的瀏覽器各不一樣。在這個科技飛速發展的時代&#xff0c;一個游覽器能否站住腳跟取決于使用者的數量&#xff0c;看用戶是否喜歡這個產品&#xff0c;聽取用戶們的意見來改善。 我們這個年齡的人最初用到的瀏覽器肯定是IE瀏覽器…

nodejs簡單層級結構配置文件

在NodeJS中使用配置文件&#xff0c;有幾種比較不錯的方案&#xff1a;第一種&#xff1a;文件格式使用json是毋容置疑的好方案。格式標準&#xff0c;易于理解&#xff0c;文件內容讀取到內存之后&#xff0c;使用JSON的標準分析函數即可得到配置項。第二種&#xff1a;將配置…

C++語言基礎(1)-命名空間

一個中大型軟件往往由多名程序員共同開發&#xff0c;會使用大量的變量和函數&#xff0c;當有兩個人都同時定義了一個名字相同的全局變量或函數的時候&#xff0c;若是把他們的代碼整合在一塊編譯&#xff0c;此時編譯器就會提示變量或函數重復定義&#xff0c;C為了解決這個問…

matlab 散點圖 線性回歸圖_線性回歸思路梳理

作者&#xff1a;夏雨驕陽 封面&#xff1a;自己想吧1簡單線性回歸1根據研究目的確定因變量和自變量。2判斷有無異常值。通過繪制散點圖直觀觀察&#xff1b;亦可通過線性回歸的【統計】→【個案診斷】→【所有個案】進行分析&#xff0c;若標準殘差超過[-3,3]&#xff0c;則…

物聯網云端設計分析

物聯網是世界信息產業發展的新浪潮&#xff0c;智能手表、智能手環、智能燈等物聯網產品不斷的改變著人們的生活方式。那這些產品是怎么設計出來的呢&#xff1f;其實物聯網操作系統不光由本地物聯網設備上的操作系統組成&#xff0c;還包括提供物聯網終端設備支持的云端架構。…