牛客演算法周周練19 E 地 顏色 魔法 BFS

2021-10-09 03:30:44 字數 940 閱讀 3049

題目鏈結

題意:給定乙個由'.','#'組成的n*m1≤n

∗m

≤106

1 ≤ n *m ≤ 106

1≤n∗m≤

106網格,其中被'#'包圍的全部可以變成'#',問你最後有多少個'#'。(和原題描述有點差別 不過就是這意思)

思路:處理每乙個網格顯然很難判斷,我們直接逆向思維,把和邊界相連的'.'bfs標記一下即可。然後沒有被標記的就是最後答案了。

ac**(第一次寫這麼長,其實可以簡化不少的,不過一a還是挺好的):

#include

#define ll long long

#define ull unsigned long long

#define db double

using namespace std;

const

int n =

1e6+10;

int t;

int dx=

;int dy=

;bool vis[n]

;signed

main()

}}}}

if(str[i]

[m-1]==

'.'&&

!vis[i*m+m-1]

)}}}

}}for(

int i=

1;i1;i++)}

}}}if

(str[n-1]

[i]==

'.'&&

!vis[

(n-1

)*m+i])}

}}}}

cout<<

(n*m-cnt)

}

牛客演算法周周練2

a 題意 求乙個數的順序和逆序之和。題解 其實就是個閹割版的高精度加法嘛。其實逆序數忽略前導零這個條件是沒有用的,因為順序數不可能有前導零,自然結果也不會有,然後注意下首位進製不取餘。include using namespace std int a 10 b 10 intmain for k j ...

牛客演算法周周練2

題目鏈結 include define sc x scanf lld x define pf printf define rep i,s,e for int i s i e i define dep i,e,s for int i e i s i using namespace std typede...

牛客演算法周周練3

只寫了乙個,打遊戲去了 就是個搜尋模板,直接寫就行 include include include include include include using namespace std define mid 1000000007 typedef long long ll int book 106 ...