2014省賽---六角填數(填空)(全排列)
public class TestOne {
static int[] a= {2,4,5,6,7,9,10,11,12};
static int len = a.length;
public static void main(String[] args) {
//對陣列a進行全排列
f(0);//從下標0處開始進行全排列
}
//(1)全排列
private static void f(int k) {
if(k==len) {//所有位置確定完畢
if(check()) {//核對該排列是否合法
}
}
for(int i=k;i<len;i++) {//選擇下標k處的元素
int t = a[k];
a[k] = a[i];
a[i] = t;
f(k+1);
t = a[k]; //回溯(避免影響下一次遍歷)
a[k] = a[i];
a[i] = t;
}
}
//(2)核對當前排列是否合法
private static boolean check() {
//計算每一條連線上的數字和(為每一條連線編號、為每一個待填數字的結點編號(作為陣列a的下標))
int r1 = 1+a[0]+a[3]+a[5];
int r2 = 1+a[1]+a[4]+a[8];
int r3 = 8+a[0]+a[1]+a[2];
int r4 = 11+a[3]+a[6];
int r5 = 3+a[2]+a[4]+a[7];
int r6 = a[5]+a[6]+a[7]+a[8];
//判斷每條線上的元素累加和是否相等
if(r1==r2&&r2==r3&&r3==r4&&r4==r5&&r5==r6) {
for(int i=0;i<len;i++) {//列印結果
System.out.println(i+": "+a[i]);
}
return true;
}
return false;
}
}
答案:10
相關文章
- 2015藍橋杯省賽javaA組-----牌型種數(填空)Java
- 2015省賽----列印菱形(填程式碼)
- 全排列價值(數學問題)
- 2017年全國大學生資訊保安競賽-填數遊戲遊戲
- 字串全排列字串
- 藍橋杯之帶分數(全排列+暴力)
- 演算法——全排列演算法
- LeetCode-046-全排列LeetCode
- LeetCode系列46—全排列LeetCode
- 全排列演算法演算法
- 【LeetCode】46. 全排列LeetCode
- Leetcode——46. 全排列LeetCode
- leetcode:全排列(java回溯)LeetCodeJava
- 2014年第五屆藍橋杯省賽試題及詳解(Java本科C組)Java
- Day 28 | 491.遞增子序列 、46.全排列、 47.全排列 II
- LeetCode-047-全排列 IILeetCode
- 遞迴-*全排列問題遞迴
- 【Algorithm】全排列演算法Go演算法
- JavaScript陣列元素全排列JavaScript陣列
- 省賽總結
- 全排列及相關擴充套件演算法(二)——求字典序下一組排列及全排列演算法套件演算法
- 數之重排列
- 有重複元素的全排列
- 藍橋杯全排列專題
- 位右移 字母大小寫全排列
- js陣列全排列問題JS陣列
- P8290 [省選聯考 2022] 填樹
- 遞迴解決全排列問題遞迴
- LeetCode46 回溯演算法求全排列,這次是真全排列LeetCode演算法
- 【leetcode】60. Permutation Sequence 全排列的第k位序的排列形式LeetCode
- 【數學建模】6 近十年江西省研究生建模賽題及近三年全國建模賽題目錄
- 2024.10.30 2022廣西省賽
- 24山東省賽wp
- ccf省賽3等獎
- 2013年省賽b組
- 2018年省賽c組
- Python語言的全排列怎麼提速?Python
- LeetCode 45跳躍遊戲&46全排列LeetCode遊戲