方格填數
如下的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 就算兩種解法。加法,乘法交換律後算不同的方案 你一共找到了多少種方案?輸入 輸出...