如下的10個格仔
+--+--+--+
| | | |
+--+--+--+--+
| | | | |
+--+--+--+--+
| | | |
+--+--+--+
(如果顯示有問題,也可以參看【圖1.jpg】)
填入0~9的數字。要求:連續的兩個數字不能相鄰。
(左右、上下、對角都算相鄰)
一共有多少種可能的填數方案?
請填寫表示方案數目的整數。
注意:你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。
1.本來自己暴力求解 發現有重複的 可是我覺得題目不嚴謹 如果暴力不想重複的話 就在沒每個迴圈加乙個判斷206059714
#includeusing namespace std;
int main()}}
}}}}
}} }
cout<2.全排列+暴力 沒有重複
#include using namespace std;//全排列標頭檔案#include
int main()
; while(next_permutation(a, a+10))//全排列 例如:1 2 3 ——>1 2 3,1 3 2,2 1 3,2 3 1,3 1 2,3 2 1
}cout << cnt;
return 0;
}
3.搜尋
#include #include #include int chess[8][8],sum=0;//sum代表方案的總數
bool vis[20];
int dx[8]=;
int dy[8]=;
bool check(int k,int x,int y)//對他相鄰的8個方格進行比較
}
return true;
}
void dfs(int sx,int sy)//sx,sy代表初始座標
chess[sx][sy]=k;
vis[k]=true;
if(sy==4)//如果到達了,最後一列就進行下一行的填數
dfs(sx+1,1);
else
dfs(sx,sy+1);
vis[k]=false;
chess[sx][sy]=-1;
}
}
}
int main()
第七屆藍橋杯 方格填數
方格填數 如下的10個格仔,填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。flag陣列標誌數字是否已經填在方格中67 8int check int a ...
藍橋杯第七屆第6題 方格填數
存粹做題感悟如下的10個格仔 如果顯示有問題,也可以參看 圖1.jpg 填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。可以暴力,也可以全排列或者dfs,...
藍橋杯 第七屆C B組 方格填數
描述 方格填數 如下的10個格仔 圖1.jpg 填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。思路 每個格和與它相鄰的格的差的絕對值都不能為0 第一格a...