五星填数。

2023-11-22 17:31
文章标签 五星 填数

本文主要是介绍五星填数。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 在五星图案节点填上数字:1~12, 不包括7和11。

要求每条直线上数字和相等

 请搜索所有可能的填法有多少种。

 注意:旋转或镜像后相同的算同一种填法

如下图就是一个恰当的填法。


一、使用dfs算法

#include<iostream>
using namespace std;
const int N=10;
int star[N], num[N]={1, 2, 3, 4, 5, 6, 8, 9, 10, 12};
bool st[N];
int cnt=0, starcnt=0;#define A star[0]+star[2]+star[5]+star[8]
#define B star[1]+star[2]+star[3]+star[4]
#define C star[0]+star[3]+star[7]+star[9]
#define D star[1]+star[5]+star[6]+star[9]
#define E star[4]+star[6]+star[7]+star[8]void printstar()
{cout << "     " << star[0] << "\n";cout << star[1] << "  " << star[2] << "   "<< star[3] << "  " << star[4] << "\n";cout << "  " << star[5] << "     " << star[7] << "\n";cout << "     " << star[6] << "\n";cout << " " << star[8] << "     " << star[9] << "\n\n\n";return;
}void dfs(int u)
{if(u==N){cnt++;if((A==B) && (A==C) && (A==D) && (A==E)){printstar();starcnt++;}return;}for(int i=0; i<N; i++){if(!st[i]){st[i]=1;star[u]=num[i];dfs(u+1);st[i]=0;}}
}int main()
{dfs(0);cout << "total arrange =" << cnt << "\n";cout << " star num=" << starcnt/10 << "\n";return 0;
}

二、使用next_permutation()函数 

#include<iostream>
#include<algorithm>
using namespace std;
const int N=10;
int star[N]={1, 2, 3, 4, 5, 6, 8, 9, 10, 12};
int cnt=0, starcnt=0;#define A star[0]+star[2]+star[5]+star[8]
#define B star[1]+star[2]+star[3]+star[4]
#define C star[0]+star[3]+star[7]+star[9]
#define D star[1]+star[5]+star[6]+star[9]
#define E star[4]+star[6]+star[7]+star[8]void printstar()
{cout << "     " << star[0] << "\n";cout << star[1] << "  " << star[2] << "   "<< star[3] << "  " << star[4] << "\n";cout << "  " << star[5] << "     " << star[7] << "\n";cout << "     " << star[6] << "\n";cout << " " << star[8] << "     " << star[9] << "\n\n\n";return;
}int main()
{do{cnt++;if(A==B && A==C && A==D && A==E){printstar();starcnt++;}}while(next_permutation(star, star+ N));cout << "total arrange =" << cnt << "\n";cout << " star num=" << starcnt/10 << "\n";return 0;
}

这篇关于五星填数。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/411762

相关文章

宠物浮毛怎么去掉比较高效?必看榜五星好评浮毛空气净化器

哎,作为一名多猫家庭的铲屎官,我这“身份标识”可太显眼了,不用自我介绍,路人一看我身上的猫毛就知道。以前,对付这些猫毛,我可是纯手工操作,拖把、粘毛滚筒轮番上阵。但人一懒,家里就成了毛海,出门还得带一身“纪念品”。猫毛多点我也就忍了,关键是它还能把我整出过敏性鼻炎,这我可得好好说说。治疗的路可不短,好不容易才算稳住。我发现,好多铲屎官都跟我一样,觉得浮毛能忍则忍,可它的危害真的不能小觑。作

C语言每日小练(二)——蛇形填数

例:在n*n方阵里输入1,2,3,...,n*n,要求填成蛇形。例如n=4时方阵为: 10 11 12  1   9 16 13  2   8 15 14  3   7   6   5  4 上面的方阵中,多余的空格知识为了便于观察矩阵,不必严格输出,n<=8。 解:此题需要小小地思考下:在按蛇形填充矩阵的过程中,我们注意到这个固定的过程:下、左、上、右、下、左、上、右... ...这

AntDesignVue Rate 评分 实现五星好评功能

案例:基本用法 <script setup>import {ref} from "vue";const value = ref()</script><template><div class="p-8 bg-red-300 text-center"><a-rate v-model:value="value"/><a-divider/>{{ value }}</div></template>

提升消费者满意度的五星售后服务认证

在当今竞争激烈的市场环境中,消费者满意度是企业取得成功的重要因素。五星售后服务认证作为一种权威性认证,可以显著提高消费者满意度,增强企业的竞争力。本文将从四个方面探讨五星售后服务认证如何提高消费者满意度。 五星售后服务认证是由国家认监委批准的第三方认证机构实施的,具有高度的权威性。获得该认证的企业,其服务质量在全国范围内具有领先地位。这种权威认证不仅能够增强消费者对企业服务的信任,还能树立行

NYoj 蛇形填数

描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 输入 直接输入方陈的维数,即n的值。(n<=100) 输出 输出结果是蛇形方陈。 样例输入 3 样例输出 7 8 16 9 25 4 3 #include <iostream>#include <cstd

怎样才能在腾讯连拿六个五星?(牛逼 !)

这是「进击的Coder」的第 130 篇热点新闻 作者:谱戈 来源:程序员谱戈 “ 阅读本文大概需要 19 分钟。 ” 刚毕业入职腾讯工作 2-3 年,半年/年终绩效每次都是 5/4 星,不一定年薪百万,主要薪资 + 奖金无法决定,这个取决于股票是否上涨不少,但晋升肯定是最快的,在阿里拿 375 跟在腾讯拿 5/4 星的比例差不多,应届毕业能拿一次确实很优秀了,要是连续拿几次,那真是牛逼!

算法学习002-填数游戏 中小学算法思维学习 信奥算法解析 c++实现

目录 C++填数游戏 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、推荐资料 C++填数游戏 一、题目要求 1、编程实现  在小学奥数中经常会看到一些填数字的游戏,如下图所示,其中每个汉字代表一个不同的数字,要求计算出这些汉字分别代表哪个数字 2、输入输出 输出描述:输出相应的算式

【Canvas与艺术】绘制八角红白蓝相间嵌五星花伞

【关键点】 伞面弧圆心的定位。 【成果图】 【代码】 <!DOCTYPE html><html lang="utf-8"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><head><title>使用Html5/Canvas绘制八角红白蓝相间嵌五星花伞</title><style ty

“蛇形填数”问题的三种解法

【题目描述】 蛇形填数。在n×n方阵里填入1,2,…,n×n,要求填成蛇形。n≤8。 【样例输入】 4 【样例输出】 10    11    12    1 9      16    13    2 8      15    14    3 7      6      5      4 上面的方阵中,多余的空格只是为了便于观察规律,不必严格输出。 【题目来源】 刘汝佳《算法竞

【NOIP2018】D2T2 填数游戏

@填数游戏@ @题目描述@@题解@@代码@@end@ @题目描述@ 小 D 特别喜欢玩游戏。这一天,他在玩一款填数游戏。 这个填数游戏的棋盘是一个 n×m 的矩形表格。玩家需要在表格的每个格子中填入一个数字(数字 0 或者数字 1 ),填数时需要满足一些限制。 下面我们来具体描述这些限制。 为了方便描述,我们先给出一些定义: 我们用每个格子的行列坐标来表示一个格子,即(