[蓝桥杯2015决赛]五星填数-枚举+数论
生活随笔
收集整理的這篇文章主要介紹了
[蓝桥杯2015决赛]五星填数-枚举+数论
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
解題思路:
對(duì)于一種符合題意的情況,旋轉(zhuǎn)和對(duì)稱之后結(jié)果也是一樣,所以我們要除去旋轉(zhuǎn)(/5)和對(duì)稱(/2)的情況,所以結(jié)果要除以10
代碼如下:
#include <iostream> #include <algorithm> using namespace std;int a[] = {1, 2, 3, 4, 5, 6, 8, 9, 10, 12}; int ans;bool check() {int r1 = a[0] + a[1] + a[2] + a[3];int r2 = a[0] + a[5] + a[7] + a[9];int r3 = a[6] + a[7] + a[8] + a[3];int r4 = a[4] + a[2] + a[8] + a[9];int r5 = a[6] + a[5] + a[1] + a[4];if (r1 == r2 && r1 == r3 && r1 == r4 && r1 == r5 &&r2 == r3 && r2 == r4 && r2 == r5 &&r3 == r4 && r3 == r5 && r4 == r5) {return true;}return false; }int main() {do {if (check()) {ans++;}} while (next_permutation(a, a + 10));cout << ans / 10 << endl;return 0; }總結(jié)
以上是生活随笔為你收集整理的[蓝桥杯2015决赛]五星填数-枚举+数论的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [蓝桥杯2015决赛]胡同门牌号-模拟+
- 下一篇: [蓝桥杯2016初赛]搭积木-枚举,ne