zoukankan      html  css  js  c++  java
  • 七星填数

    在七角星的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);
    }
  • 相关阅读:
    php上传文件大小修改
    flex布局
    restful
    mysql之windows忘记密码
    mysql常用命令
    比较级浅析1
    一般副词的位子
    still讲解
    英语学习法
    as的如下用法
  • 原文地址:https://www.cnblogs.com/8023spz/p/10742475.html
Copyright © 2011-2022 走看看