LOJ 2653 山峰和山谷

2022-08-03 02:39:11 字數 953 閱讀 3326

讀完題,這是一道和bfs聯通快有關的搜尋題,肯定要搜尋一些聯通快,而這道題的難點在於如何判斷當前的聯通快屬於山峰還是山谷。

因此,我們設計乙個演算法,在用bfs求聯通快的同時,判斷當前聯通快是山峰山谷或者啥都不是。

具體地,我們像往常一樣搜尋聯通快,若擴充套件的節點高度與當前聯通快不同,則開始判斷:如果大於,表明當前聯通快不可能為山峰。反之同理。

因此我們得到了乙個完整的演算法。

1 #include 2 #include 3 #include 4 #include 5 #include 6 typedef long

long

ll;7 inline int

read()

11while(c<='

9'&&c>='

0') ret=ret*10+c-'

0',c=getchar();

12return ret*f;13}

14using

namespace

std;

15int a[1010][1010],vis[1010][1010

],ans1,ans2,n,sum1,sum2;

16 queueqx;

17 queueqy;

18int fx[8]=;

19int fy[8]=;

20void bfs(int sx,int

sy)

37else41}

42}43}

44int

main()

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

58for(int j=1;j<=n;j++)

59if(!vis[i][j])

65 printf("

%d %d\n

",ans1,ans2);

66return0;

67 }

ac code

1454 山峰和山谷

時間限制 1000 ms 記憶體限制 65536 kb 提交數 93 通過數 28 給定乙個 n n 的網格狀地圖,每個方格 i,j 有乙個高度 wij 如果兩個方格有公共頂點,則它們是相鄰的。定義山峰和山谷如下 均由地圖上的乙個連通塊組成 所有方格高度都相同 周圍的方格 即不屬於山峰或山谷但與山峰...

Flood Fill 山峰和山谷

fgd小朋友特別喜歡爬山,在爬山的時候他就在研究山峰和山谷。為了能夠對旅程有乙個安排,他想知道山峰和山谷的數量。給定乙個地圖,為fgd想要旅行的區域,地圖被分為 n n 的網格,每個格仔 i,j 的高度 w i,j 是給定的。若兩個格仔有公共頂點,那麼它們就是相鄰的格仔,如與 i,j 相鄰的格仔有 ...

山峰和山谷 Flood Fill

fgd小朋友特別喜歡爬山,在爬山的時候他就在研究山峰和山谷。為了能夠對旅程有乙個安排,他想知道山峰和山谷的數量。給定乙個地圖,為fgd想要旅行的區域,地圖被分為 n n 的網格,每個格仔 i,j 的高度 w i,j 是給定的。若兩個格仔有公共頂點,那麼它們就是相鄰的格仔,如與 i,j 相鄰的格仔有 ...