码迷,mamicode.com
首页 > 其他好文 > 详细

七星填数

时间:2019-04-20 21:24:35      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:std   inpu   tin   绿色   pac   space   text   bool   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);
}

 

七星填数

标签:std   inpu   tin   绿色   pac   space   text   bool   com   

原文地址:https://www.cnblogs.com/8023spz/p/10742475.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!