蒜頭君下棋
共一行,兩個整數nn和mm(1 \leq n , m \leq 10001≤n,m≤1000),代表棋盤一共有 nn 行 mm 列。
輸出乙個整數,代表棋盤上最多能放的馬的數量。
樣例輸入1複製
2 4樣例輸出1複製
4樣例輸入2複製
3 4樣例輸出2複製
6(1)當棋盤只有一行時,棋盤上全放上棋子即可,即sum=m。
即放兩排空兩排。
如圖當n=2時 m與sum 的關係
可以找到規律:當m除4取餘結果為0時 sum=m;
當m除4取餘結果為1時 sum=m+1;
否則sum=m / 4 * 4 + 4;
(3)其它情況下,參考西洋棋棋盤的顏色,馬跳一次一定會從白色格仔變為黑色,因此把所有馬放在同一顏色下即可。
根據圖中黑色和白色位置關係可以得出規律:sum = (n * m + 1) / 2;
#include#includeusing namespace std;
#define ll long long
int main()
if(n==1)
else if(n==2)
}else
cout
}
蒜頭君下棋 DFS
題目鏈結 我們從某一點出發,把這一點當做1,之後開始dfs,他能到達的點 馬子走 都設為 1,再從能到達的點再遍歷,設為1。這樣能把這些點分為1和 1.這是相互衝突的。這樣之後我們還會可能有一些點沒有被遍歷到,我們再找那些等於0,也就是沒有被遍歷到的,再重複過程。最後我們統計1的個數還有 1的個數,...
2018 藍橋杯省賽 A 組模擬賽 蒜頭君下棋
題意 乙個n m的棋盤上讓你放馬,馬和馬之間不能攻擊。問能放多少匹馬。題解 最開始是以為是一道搜尋題。然後一看資料範圍。瞬間懵逼。發現這道題,是個規律題。而且規律錯綜複雜。死活沒有思路。然後我們隊裡的dalao告訴我。你看一眼西洋棋的棋盤你就能明白這道題了。然後我就看了一下棋盤,發現如下規律 當 n...
蒜頭君面試
題目 問題描述 蒜頭君來蒜廠面試的時候,曾經遇到這樣乙個面試題 給定 n 個整數,求裡面出現次數最多的數,如果有多個重複出現的數,求出值最大的乙個。當時可算是給蒜頭君難住了。現在蒜頭君來考考你。輸入格式 第一行輸入乙個整數n 1 n 100000 接下來一行輸入n個 int 範圍內的整數。輸出格式 ...