蓝桥杯五7六角填空暴力ORdfs
来源:互联网 发布:广东裤哥战哭淘宝女郎 编辑:程序博客网 时间:2024/06/06 02:30
标题:六角填数
如图【1.png】所示六角形中,填入1~12的数字。
使得每条直线上的数字之和都相同。
图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?
请通过浏览器提交答案,不要填写多余的内容。
暴力:
#include <iostream>#include<cstdio>#include<algorithm>using namespace std;int main(){ int a[13],t; for(int i=0;i<12;i++) a[i]=i+1; while(next_permutation(a,a+12)) { t=a[1]+a[2]+a[3]+a[4]; if(a[0]==1&&a[1]==8&&a[11]==3&&t==a[7]+a[8]+a[9]+a[10]&&t==a[0]+a[2]+a[5]+a[7] &&t==a[4]+a[6]+a[9]+a[11]&&t==a[1]+a[5]+a[8]+a[11]&&t==a[0]+a[3]+a[6]+a[10]) { cout<<a[5]; } } return 0;}
总结:next_permutation(a,a+12)这个函数是全排列函数,头文件为algorithm
法二:dfs
#include <iostream>#include<cstdio>#include<string.h>#include<algorithm>using namespace std;int a[13];bool vis[13];void dfs(int k){ int t=a[1]+a[2]+a[3]+a[4]; if(k==12&&a[0]==1&&a[1]==8&&a[11]==3&&t==a[7]+a[8]+a[9]+a[10]&&t==a[0]+a[2]+a[5]+a[7] &&t==a[4]+a[6]+a[9]+a[11]&&t==a[1]+a[5]+a[8]+a[11]&&t==a[0]+a[3]+a[6]+a[10]) { cout<<a[5]; return ; } for(int i=1; i<=12; i++) { if(!vis[i]) { vis[i]=1; a[k]=i; dfs(k+1); vis[i]=0; a[k]=0; } }}int main(){ memset(a,0,12);///memset(a,0,sizeof(a); memset(vis,0,12); dfs(0); return 0;}总结:多找些dfs类型的题目做,因为掌握的还不好
0 0
- 蓝桥杯五7六角填空暴力ORdfs
- 蓝桥杯结果填空—— 六角填数
- 蓝桥杯 结果填空 古堡算式 超级暴力
- 2014年第五届蓝桥杯C/C++程序设计本科B组省赛 六角填数(结果填空)
- 2014 蓝桥杯 预赛 c/c++ 本科B组 第七题:六角填数【暴力】or【DFS】
- 填空
- 填空
- 第五届蓝桥杯【省赛试题7】六角填数
- 六角填数,蓝桥杯2014年第7题
- 六角架构
- SAT填空题实例练习7道
- 第三届蓝桥杯7放旗子填空题
- 2013年第四届蓝桥杯C/C++省赛 第39级台阶(结果填空) ----DFS深度搜索遍历和暴力搜索
- 2014 蓝桥杯 预赛 c/c++ 本科B组 第7题:六角填数(12')
- 2014 蓝桥杯 预赛 c/c++ 本科B组 第7题:六角填数(12')
- 2014年第五届蓝桥杯C/C++程序设计本科B组省赛 7六角填数
- 第五届蓝桥杯软件类省赛真题-C-B-7_六角填数
- 六角图 设计
- 线段树
- c4编译器源码剖析
- 性能优化,进无止境---内存篇(上)
- 性能优化,进无止境---内存篇
- 【安卓笔记】成长第四步,Serializable接口与Parcelable接口
- 蓝桥杯五7六角填空暴力ORdfs
- Geekband002第二周笔记分享
- java 编程笔记
- redis-linux 安装配置以及使用手册
- rpmdb open failed 的解决办法
- 随手记----Android仿iOS音量调节的效果
- 《基于MFC的OpenGL编程》Part 9 Texture Mapping
- iOS中按钮边框及文字对齐设置
- 最近邻居法KNN