七星填数

Posted 8023spz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了七星填数相关的知识,希望对你有一定的参考价值。

技术图片

在七角星的14个节点上填入1~14 的数字,不重复,不遗漏。
要求每条直线上的四个数字之和必须相等。

图中已经给出了3个数字。
请计算其它位置要填充的数字,答案唯一。

填好后,请提交绿色节点的4个数字(从左到右,用空格分开)

比如:12 5 4 8
当然,这不是正确的答案。

注意:只提交4个用空格分开的数字,不要填写任何多余的内容。

答案:

 

代码:

#include <iostream>

using namespace std;
int ch[11] = {1,2,3,4,5,7,8,9,10,12,13};
bool vis[11];
int to[11][2] = {4,5,1,4,0,4,3,4,1,5,0,3,2,5,3,6,2,6,2,3,5,6};
int ans[11];
int sum[7] = {17,20,14,0,0,0,11};
int n = (1 + 14) * 2;
void dfs(int k) {
    if(k >= 11) {
        for(int i = 0;i < 4;i ++) {
            cout<<ans[i]<< ;
        }
        return;
    }
    for(int i = 0;i < 11;i ++) {
        if(vis[i] || sum[to[k][0]] + ch[i] > n || sum[to[k][1]] + ch[i] > n) continue;
        vis[i] = true;
        sum[to[k][0]] += ch[i];
        sum[to[k][1]] += ch[i];
        ans[k] = ch[i];
        dfs(k + 1);
        sum[to[k][1]] -= ch[i];
        sum[to[k][0]] -= ch[i];
        vis[i] = false;
    }
}
int main() {
    dfs(0);
}

 

以上是关于七星填数的主要内容,如果未能解决你的问题,请参考以下文章

找介绍蝴蝶和七星瓢虫的中英文介绍.

算法笔记_213:第七届蓝桥杯软件类决赛部分真题(Java语言C组)

第51题常用的数学工具类8-七星彩号码生成器

python版蛇形填数

蛇形填数

北斗七星 大话/详解7种RAID