蒜頭君下棋 DFS

2021-09-11 01:10:59 字數 425 閱讀 5310

題目鏈結

我們從某一點出發,把這一點當做1,之後開始dfs,他能到達的點(馬子走)都設為-1,再從能到達的點再遍歷,設為1。

這樣能把這些點分為1和-1.這是相互衝突的。這樣之後我們還會可能有一些點沒有被遍歷到,我們再找那些等於0,也就是沒有被遍歷到的,再重複過程。

最後我們統計1的個數還有-1的個數,取最大值即可。

#include#include#includeusing namespace std;

int a[1010][1010];

int dx=;

int dy=;

int n,m;

void dfs(int x,int y)

} }int sum=0;

for(int i=0;i} }

cout<}

蒜頭君下棋

蒜頭君下棋 共一行,兩個整數nn和mm 1 leq n m leq 10001 n,m 1000 代表棋盤一共有 nn 行 mm 列。輸出乙個整數,代表棋盤上最多能放的馬的數量。樣例輸入1複製 2 4樣例輸出1複製 4樣例輸入2複製 3 4樣例輸出2複製 6 1 當棋盤只有一行時,棋盤上全放上棋子即...

2018 藍橋杯省賽 A 組模擬賽 蒜頭君下棋

題意 乙個n m的棋盤上讓你放馬,馬和馬之間不能攻擊。問能放多少匹馬。題解 最開始是以為是一道搜尋題。然後一看資料範圍。瞬間懵逼。發現這道題,是個規律題。而且規律錯綜複雜。死活沒有思路。然後我們隊裡的dalao告訴我。你看一眼西洋棋的棋盤你就能明白這道題了。然後我就看了一下棋盤,發現如下規律 當 n...

蒜頭君面試

題目 問題描述 蒜頭君來蒜廠面試的時候,曾經遇到這樣乙個面試題 給定 n 個整數,求裡面出現次數最多的數,如果有多個重複出現的數,求出值最大的乙個。當時可算是給蒜頭君難住了。現在蒜頭君來考考你。輸入格式 第一行輸入乙個整數n 1 n 100000 接下來一行輸入n個 int 範圍內的整數。輸出格式 ...