【百鍊oj】2816:紅與黑
1)‘.’:黑色的瓷磚;
2)‘#’:白色的瓷磚;
3)‘@’:黑色的瓷磚,並且你站在這塊瓷磚上。該字元在每個資料集合中唯一出現一次。
當在一行中讀入的是兩個零時,表示輸入結束。
輸出對每個資料集合,分別輸出一行,顯示你從初始位置出發能到達的瓷磚數(記數時包括初始位置的瓷磚)。樣例輸入
6 9 ....#. .....# ...... ...... ...... ...... ...... #@...# .#..#. 0 0樣例輸出
45
#include<stdio.h> char map[20][20]; int main(){ int mark(int,int,int,int); int row,line,i,j; while(scanf("%d %d",&line,&row)){ if(row==0||line==0)break; scanf("\n"); for(i=0;i<row;i++){ gets(map[i]); } int x,y; for(i=0;i<row;i++){ for(j=0;j<line;j++) if(map[i][j]=='@')x=i,y=j; } mark(x,y,row,line); int count=0; for(i=0;i<row;i++){ for(j=0;j<line;j++) if(map[i][j]==0)count++; } printf("%d\n",count+1); } } int mark(int i,int j,int row,int line){ if(i-1>=0&&map[i-1][j]=='.'){ map[i-1][j]=0; mark(i-1,j,row,line); } if(j-1>=0&&map[i][j-1]=='.'){ map[i][j-1]=0; mark(i,j-1,row,line); } if(i+1<row&&map[i+1][j]=='.'){ map[i+1][j]=0; mark(i+1,j,row,line); } if(j+1<line&&map[i][j+1]=='.'){ map[i][j+1]=0; mark(i,j+1,row,line); } }
相關推薦
【百鍊oj】2816:紅與黑
描述有一間長方形的房子,地上鋪了紅色、黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上,只能向相鄰的黑色瓷磚移動。請寫一個程式,計算你總共能夠到達多少塊黑色的瓷磚。輸入包括多個數據集合。每個資料集合的第一行是兩個整數W和H,分別表示x方向和y方向瓷磚的數量。W和H都不超過
【NOI OJ】1818 紅與黑
1818:紅與黑 總時間限制: 1000ms 記憶體限制: 65536kB 描述 有一間長方形的房子,地上鋪了紅色、黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上,只能向相鄰的黑色瓷磚移
Bailian2816 紅與黑【DFS】
2816:紅與黑 總時間限制: 1000ms 記憶體限制: 65536kB 描述 有一間長方形的房子,地上鋪了紅色、黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上,只能向相鄰的黑色瓷磚移動。請寫一個程式,計算你總共能夠到達多少塊黑色的瓷磚。 輸入 包括多個數據集合。每個資料集合的第一行是兩個整數W和H,
【華為 OJ 】整數與IP地址間的轉換
原理:ip地址的每段可以看成是一個0-255的整數,把每段拆分成一個二進位制形式組合起來,然後把這個二進位制數轉變成 一個長整數。 舉例:一個ip地址為10.0.3.193 每段數字 相對應的二進位制數 10 0
【數據壓縮】JPEG標準與原理解析
round 高頻 切割 基於 大小 image 生成 p s pan 轉載請註明出處:http://blog.csdn.net/luoshixian099/article/details/50392230 CSDN-勿在浮沙築高臺 為了滿足不同應用的需求,J
【C/C++學院】0831-類與對象的異常/面試100題1-100
oid tdi 面試 mod get() ng- java article ron 類與對象的異常 Cpp異常 #include <iostream> #include <string.h> using namespace st
【百度圖表】頁面引入多個圖表,讓其只適應
++ i++ top color win setoption 實例 get logs 【百度圖表】頁面引入多個圖表,讓其只適應 網上發現有個這樣的方法讓圖表自適應,window.onresize = myChart.resize; 但是發現好像只有最後一個有效,於是就有了
【視覺SLAM14講】ch4心得與課後題答案【僅供參考】
參考 http sim 數學推導 數學 之間 沒有 sla per 學習心得: 在研究SLAM時候,除了對三維世界剛體運動表示外(ch3),由於噪聲的影響,還要進行對可能的位姿進行優化,而旋轉矩陣必須得是行列式為1的正交矩陣, 為了減少這種約束,我們希望通過李群和李代數
MySQL數據庫學習【第九篇】索引原理與慢查詢優化
xxx 結構 復合 unix select查詢 全文搜索 等等 學習 獲取數據 一、介紹 1.什麽是索引? 一般的應用系統,讀寫比例在10:1左右,而且插入操作和一般的更新操作很少出現性能問題,在生產環境中,我們遇到最多的,也是最容易出問題的,還是一些復雜的查詢操作,因此對
【百度AR】【Android】demo工程使用手記
AR【百度AR】【Android】demo工程使用手記 demo工程獲取和註意事項 百度AR平臺地址:https://ar.baidu.com/testapply 技術文檔地址:https://ai.baidu.com/docs#/DuMixAR-Android-SDK/top AR內容管理地址:https
【MATLAB深度學習】神經網絡與分類問題
簡單 clas alpha 學習 exp 輸出 問題 分類 ros 神經網絡與分類問題 1.多元分類 根據分類的數量確定輸出節點的數量是最可能得到良好效果的方法。輸出的類別表示可以使用one-hot編碼。通常情況下,二分類使用Sigmoid函數,多元分類使用Softm
【逐夢AI】深度學習與計算機視覺應用實戰課程(BAT工程師主講,無人汽車,機器人,神經網絡)
bat 神經網絡 深度學習 深度學習框架 0基礎 http 提取 框架 以及 【逐夢AI】深度學習與計算機視覺應用實戰課程(BAT工程師主講,無人汽車,機器人,神經網絡)網盤地址:https://pan.baidu.com/s/1G0_WS-uHeSyVvvl_4bQnlA
【C/C++開發】函式指標與回撥函式
C++很多類庫都喜歡用回撥函式,MFC中的定時器,訊息機制,hook機制等待,包括現在在研究的cocos2d-x中也有很多的回撥函式。 1.回撥函式 什麼是回撥函式呢?回撥函式其實就是一個通過函式指標呼叫的函式!假如你把A函式的指標當作引數傳給B函式,然後在B函式中通過A函式傳進來的這個指標
【Python第三方包】scikitlearn-KFold與StratifiedKFold的區別
KFold與StratifiedKFold的區別 class sklearn.model_selection.StratifiedKFold(n_splits=3, shuffle=False, random_state=None) Stratified K-Folds cro
面向物件【林老師版】:繼承與派生(六)
一、初識繼承 1、什麼是繼承 繼承指的是類與類之間的關係,是一種什麼“是”什麼的關係,繼承的功能之一就是用來解決程式碼重用問題 繼承是一種建立新類的方式,在python中,新建的類可以繼承一個或多個父類,父類又可以成為基類或超類,新建的類稱為派生類或子類 2、python中類的繼承分為:單繼承和多繼承
【LeetCode 簡單題】75-區域與檢索陣列不可變
宣告: 今天是第75道題。給定一個整數陣列 nums,求出陣列從索引 i 到 j (i ≤ j) 範圍內元素的總和,包含 i, j 兩點。以下所有程式碼經過樓主驗證都能在LeetC
【極客時間】資料結構與演算法總結
【極客時間】資料結構與演算法總結: 02| 資料結構是為演算法服務的,演算法要作用在特定的資料結構之上。 20個最常用的最基礎的資料結構與演算法: 10個數據結構:陣列、連結串列、棧、佇列、散列表、二叉樹、堆、跳錶、圖、Trie樹 10個演算法:遞迴、排序、二分
【百度地圖】百度地圖指定省市進行描邊處理,省市外進行半透明遮蓋。
//指定省市進行描邊處理,省市外進行半透明遮蓋。 function getBoundary2(map,city){ var bdary = new BMap.Boundary(); bdary.get(city, function(rs){//獲取行政區域
【百度地圖】在百度地圖上框出邊界線
程式碼: 一、建立地圖 建立地圖物件;設立中心點以及地圖級別。 var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.403765, 39.914850), 12); 二、新增地圖事件
【大話資料結構】04 棧與佇列 筆記
《大話資料結構》 ——程傑 共463頁 筆記圈點主要內容,也請多多支援大話資料結構該書作者。 第 4 章 棧與佇列 111頁_定義 棧是限定在表尾進行插入和刪除操作的線性表。 佇列是隻允