馬的管轄(計蒜客)

2021-10-02 13:25:05 字數 598 閱讀 7088

一道很有意思的搜尋題,看了別人的思路,原來是暴力解就可以了,用二進位制來表示馬存在的個數,注意時間可能有點慢,剪枝可以大大縮短時間

思路:二進位制列舉,總方案數2^25,在每一種方案中找到滿足的條件(馬管轄所有棋盤)具體思路都放到**裡了。

#include#includeusing namespace std;

#define inf 0x3f3f3f3f;

int dir[8][2]=,,,,,,,};//馬走日

int vis[8][2]=,,,,,,,};//蹩了馬腳

int n=5,m=5;

int map[5][5];

int minx=inf;//剪枝

int fun(int t)

} }for(int i=0;ifor(int j=0;jif(!map[i][j])

return 0;

if(cntminx=cnt;

return cnt;

}int main()

for(int i=0;i<26;i++)

if(ans[i])

return 0;

}

計蒜客 馬的覆蓋點 dfs

題意 已知馬走日,可以走八個方向,現用 表示可走的路,表示到達的點。給出馬的乙個初始位置,請輸出馬在三步內可以到達的點 圖來表示 思路 dfs暴力搜尋即可。注意 不要返回,因為走三步時可能經過這個點。include include include include include include in...

計蒜客 2019計蒜之道D

題意 現在給定你乙個字串 s ss 以及乙個整數 k kk,請求出 s ss的字典序最小的長度為 k kk的子串行。資料範圍 0 s 5000000 00 s 5000 000 樣例輸入 helloworld 5樣例輸出 ellld思路 假如我們先不考慮長度為k的限制我們應當怎麼做?我們以樣例為例子...

計蒜客 解碼

蒜頭君自己發明了一種字串的編碼方式,對於只含有大小寫字母的字串,可以用數字來表示括號裡面的串連續出現的次數 數字有可能超過一位數 比如a abcd 2等價於aabcdabcd。特別地,如果數字前面沒有括號,表示緊貼數字的前面的 乙個字母 出現的次數。比如abc2表示abcc。為了降低解碼的難度,蒜頭...