如圖,如下的10個格仔,填入0~9的數字。要求:連續的兩個數字不能相鄰。
(左右、上下、對角都算相鄰)一共有多少種可能的填數方案?
請填寫表示方案數目的整數。
這道題也是組合問題啦~next_permutation解決,分分鐘啊哈哈哈
就是judge的時候有點點麻煩,但是很直觀,超簡單的啦~
我標記的時候是這樣標記的對照**來看,判斷不是相鄰的數字
不多說啦~直接**部分嘻嘻
這道題目dfs也是可以跑的啦~大同小異
#include
using
namespace std;
int a[10]
=;int cnt;
intjudge()
elseif(
fabs
(a[1
]- a[3]
)==1||
fabs
(a[1
]- a[4]
)==1)
elseif(
fabs
(a[2
]- a[3]
)==1||
fabs
(a[2
]- a[5]
)==1||
fabs
(a[2
]- a[6]
)==1)
elseif(
fabs
(a[3
]- a[4]
)==1||
fabs
(a[3
]- a[5]
)==1||
fabs
(a[3
]- a[6]
)==1||
fabs
(a[3
]- a[7]
)==1)
elseif(
fabs
(a[4
]- a[6]
)==1||
fabs
(a[4
]- a[7]
)==1)
elseif(
fabs
(a[5
]- a[6]
)==1||
fabs
(a[5
]- a[8]
)==1||
fabs
(a[5
]- a[9]
)==1)
elseif(
fabs
(a[6
]- a[7]
)==1||
fabs
(a[6
]- a[8]
)==1||
fabs
(a[6
]- a[9]
)==1)
elseif(
fabs
(a[7
]- a[9]
)==1)
elseif(
fabs
(a[8
]- a[9]
)==1)
return flag;
}int
main()
}while
(next_permutation
(a, a +10)
);cout << cnt << endl;
return0;
}
2023年第七屆藍橋杯C B組G題
如圖所示,有12張連在一起的12生肖的郵票。現在你要從中剪下5張來,要求必須是連著的。僅僅連線乙個角不算相連 比如,如圖所示,粉紅色所示部分就是合格的剪取。解題思路就是dfs出5個數出來,也就是12個數選5個數。再判斷連通性,判斷是否連通。模擬乙個矩形出來。找到行和列與填的數字的關係 值的行等於 n...
2023年第七屆藍橋杯C B組H題
四平方和定理,又稱為拉格朗日定理 每個正整數都可以表示為至多4個正整數的平方和。如果把0包括進去,就正好可以表示為4個數的平方和。比如 5 0 2 0 2 1 2 2 2 7 1 2 1 2 1 2 2 2 符號表示乘方的意思 對於乙個給定的正整數,可能存在多種平方和的表示法。要求你對4個數排序 0...
2023年第七屆藍橋杯省賽C B組C題
這個算式中a i代表1 9的數字,不同的字母代表不同的數字。比如 6 8 3 952 714 就是一種解法,5 3 1 972 486 是另一種解法。這個算式一共有多少種解法?好了看到這道題的第一眼我想的是搜尋。其實搜尋可以。但是排列更加簡單。用next permutation 嘻嘻嘻暴力算一下就可...