演算法實驗題 1 4 畫展活動

2022-03-09 06:57:07 字數 1201 閱讀 9734

週末,小 f 去參加畫展,他希望在畫展中能夠欣賞到盡可能多的畫作。

畫展的場地是乙個 nm 大小的長方形廣場,對於其中的每乙個格仔,它可能是空地或

者是乙個展板,如果當前格仔為空地,則用』.』表示。如果為展板,則用『』表示。對於任

意兩個相鄰的格仔,如果乙個為空地,乙個為展板,則展板朝向空地的方向有一幅可以觀賞

的畫作。(可以認為乙個展板的格仔有四幅畫作,分別朝向四個方向)

在畫展活動中,小 f 可以在相鄰的空地之間移動,他只有站在與展板相鄰的空地上才

能欣賞畫作。現在給定他的初始位置,他希望你能夠告訴他,在他可以移動的範圍內,最多

能夠欣賞到多少的畫作。

輸入的第一行包含三個整數 n,m 和 k (3 ≤ n, m ≤ 1000, 1 ≤ k ≤ min(nm, 100 000)) ,表

示畫展場地的大小以及初始位置的個數。

接下來 n 行,每行 m 個『.』或『』的符號,描述了畫展場地的情況。資料保證畫展場

地周邊一圈都由展板組成,保證小 f 不會走出畫展場地。

接下來 k 行,每行兩個整數 x 和 y (1 ≤ x ≤ n, 1 ≤ y ≤ m) ,表示小 f 初始的行列位置,數

據保證小 f 的初始位置在空地上。

輸出 k 行,每行乙個整數,表示小 f 在這個初始位置最多能夠欣賞到多少畫作。

5 6 3

******

*..*.*

******

*....*

*****

2 22 5

4 36410

#include#includeconst int max_size = 1005;

char map[max_size][max_size];

int visit[max_size][max_size];

int res[max_size * max_size];

int dirc[4][2] = ;

int n, m, k;

int cnt = 1;

int dfs(int x, int y) else

} }

return sum;

}int main()

for (i = 1; i <= n; i ++)

} }while (k --)

return 0;

}

演算法實驗題 5 1 湖泊

問題描述 小 g 最近開始對地理感興趣,小 g 找來了伯蘭的地圖,並用網格將其劃分。被劃分後 的地圖是乙個 n m 的矩形。每乙個單元格的大小是 1 1 的,每一格代表著水或者陸地。地 圖外則代表著海洋。湖泊是相鄰的所有代表水的格仔組成的不與海洋相鄰的最大區域。地圖 上有著超過 k 的湖泊,小 g ...

畫直線演算法

畫直線演算法 前段時間做了一下光柵直線生成演算法的研究,並且在vc下實現了dda 演算法 bresenham 演算法 對稱演算法 兩步演算法 及四步演算法。這裡給個總結,希望和大家交流。主要研究的演算法主要有 dda演算法 bresenham 演算法 對稱演算法 兩步演算法 及四步演算法,此外還對自...

演算法實驗題3 2 排程問題

演算法實驗題3.2 排程問題 問題描述 作業排程在電腦科學中是乙個經典問題並且已經研究了很長一段時間。不同的排程 問題往往滿足不同的約束條件和排程需求而顯得千差萬別。這裡我們考慮二機排程問題。實驗室裡有兩台機器a 和b。機器a 有n 種工作模式,分別為mode 0,mode 1,mode n 1,同...