藍橋杯之方格填數,寒假作業

2021-08-15 16:41:49 字數 1173 閱讀 7315

方格填數

如下的10個格仔

+--+--+--+

|  |  |  |

+--+--+--+--+

|  |  |  |  |

+--+--+--+--+

|  |  |  |

+--+--+--+

(如果顯示有問題,也可以參看下圖)

填入0~9的數字。要求:連續的兩個數字不能相鄰。

(左右、上下、對角都算相鄰)

一共有多少種可能的填數方案?

請填寫表示方案數目的整數。

注意:你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。

首先,不必花心思考慮怎麼把這個圖形在程式中表現出來,乙個一維陣列就可以搞定,我們這樣做:

自上而下,從左向右分別給這些單元格標記為 a[1],a[2],...,a[10]。

要做到題述要求,對於 a[1],只需要 a[1] 和 a[2],a[4],a[5],a[6] 之間的絕對值大於 1 即可。對其他位置亦是如此,如果填寫的不符合要求就回溯,和深搜的思想一樣,如果不是很理解深搜,請看這篇文章:

我們只需要將符合題意的結果找出來就可以了:

#include #include using namespace std;

int count = 0;

int a[12],b[12];

void check()

}void fill_numbers(int x)

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

}}int main()

for (; i < _max; i++)

}return ;

}int main()

}else if (n == 5)

}else if (n == 8)

}else if (n == 11)

}else

return 0;

}void dfs(int n)

for (; i < _max; i++)

dfs(n + 1);

vis[i] = 0;}}

return ;

}int main()

藍橋杯 寒假作業

現在小學的數學題目也不是那麼好玩的。看看這個寒假作業 如果顯示不出來,可以參見 圖1.jpg 每個方塊代表1 13中的某乙個數字,但不能重複。比如 6 7 13 9 8 1 3 4 12 10 2 5 以及 7 6 13 9 8 1 3 4 12 10 2 5 就算兩種解法。加法,乘法交換律後算不同...

藍橋杯 寒假作業

寒假作業 寒假作業 現在小學的數學題目也不是那麼好玩的。看看這個寒假作業 如果顯示不出來,可以參見 圖1.jpg 每個方塊代表1 13中的某乙個數字,但不能重複。比如 6 7 13 9 8 1 3 4 12 10 2 5 以及 7 6 13 9 8 1 3 4 12 10 2 5 就算兩種解法。加法...

藍橋杯 寒假作業

題目描述 現在小學的數學題目也不是那麼好玩的。看看這個寒假作業 每個方塊代表1 13中的某乙個數字,但不能重複。比如 6 7 139 8 13 4 1210 2 5 以及 7 6 139 8 13 4 1210 2 5 就算兩種解法。加法,乘法交換律後算不同的方案 你一共找到了多少種方案?輸入 輸出...