題目鏈結
題意:給定乙個由'.','#'
組成的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 ...