正六面体染色

正六面体用4种颜色染色。

共有多少种不同的染色样式?

要考虑六面体可以任意旋转、翻转。

分析:六面体染色后任意旋转、翻转均判定为相同的染色方案,这点需要注意。

其实只有两种翻转方式,即水平翻转和竖直翻转。

创建一数组vis[333334],用于标记某方案是否已被访问。下标的每一个数位对应一个面的颜色编号。

因为是6个面,所以是个6数位;因为有四种颜色,所以每个数位为0~3的整数值

#include<iostream>
using namespace std;
#define f(a) for(a=0;a<4;a++)
bool vis[333334];
int sum;
//求某染色方案在vis的下标
int compute(int*);
//旋转正方体
void r(int,int,int,int,int,int);
int main() {int a[6],t;f(a[0])f(a[1])f(a[2])f(a[3])f(a[4])f(a[5]) {t=compute(a); //求方案a对应vis的下标if(vis[t]) continue;sum++;vis[t]=true;//标记方案t为已访问//深搜,去除旋转后的重复方案r(a[0],a[4],a[1],a[2],a[3],a[5]);r(a[1],a[5],a[2],a[0],a[4],a[3]);r(a[4],a[1],a[0],a[3],a[5],a[2]);}cout<<sum;return 0;
}
//求染色方案a在vis的下标
int compute(int *a) {return a[0]*100000+a[1]*10000+a[2]*1000+a[3]*100+a[4]*10+a[5];
}//旋转正方体
void r(int a0,int a1,int a2,int a3,int a4,int a5) {int a[6]= {a0,a1,a2,a3,a4,a5};int t=compute(a);if(vis[t])  return;vis[t]=true;//深搜r(a[0],a[4],a[1],a[2],a[3],a[5]); //以“0”和“5”为轴旋转正方体r(a[1],a[5],a[2],a[0],a[4],a[3]); //以“2”和“4”为轴旋转正方体r(a[4],a[1],a[0],a[3],a[5],a[2]); //以“1”和“3”为轴旋转正方体
}

可直接用组合数学中的polya定理。

用n种颜色对正六面体进行染色的不同着色方案数为:

#include<stdio.h>
#include<math.h>
int main()
{int n=4;int sum=(pow(n,6)+3*pow(n,4)+12*pow(n,3)+8*pow(n,2))/24;printf("%d",sum);return 0;
}

蓝桥杯——六面体染色相关推荐

  1. 第十三届蓝桥杯大赛软件赛省赛(Java 大学A组)

    蓝桥杯 2022年省赛真题 Java 大学A组 试题 A: 裁纸刀 试题 B: 寻找整数 试题 C: 求和 试题 D: GCD 试题 E: 蜂巢 试题 F: 全排列的价值 试题 G: 青蛙过河 试题 ...

  2. 蓝桥杯 并查集汇总学习 及其代码

    蓝桥杯 并查集汇总学习 及其代码 这里记录一下在刷蓝桥杯的并查集的题时写的一些代码 蓝桥幼儿园 蓝桥幼儿园 :https://www.lanqiao.cn/problems/1135/learning ...

  3. 第十三届蓝桥杯大赛软件赛省赛第二场(Java 大学A组)

    蓝桥杯 2022年省赛真题 Java 大学A组 第二场 试题 A: 练习 试题 B: 超级质数 试题 C: 考勤刷卡 试题 D: 最大和 试题 E: 染色时间 试题 F: k 倍区间 试题 G: 选素 ...

  4. 蓝桥杯国赛C++A组B组题解整理(第八、七、六、五、四届)

    [写在前面的话19.04.04] 今年省赛的结果出的意外得快,有很多小伙伴来和我分享他们进了省一的喜悦,并问我啥时候更新国赛题解,emmm--不是我不想更新,实在是抽不出时间,有缘再更--虽然不更新题 ...

  5. 第六届蓝桥杯大赛个人赛决赛(C/C++大学B组)

    第六届蓝桥杯大赛个人赛决赛(C/C++大学B组) 第一题 积分之迷(15分) 小明开了个网上商店,卖风铃.共有3个品牌:A,B,C. 为了促销,每件商品都会返固定的积分. 小明开业第一天收到了三笔订单 ...

  6. 第十三届蓝桥杯大赛软件赛省赛(C/C++ 大学A组)

    蓝桥杯 2022年省赛真题 C/C++ 大学A组 试题 A: 裁纸刀 试题 B: 灭鼠先锋 试题 C: 求和 试题 D: 选数异或 试题 E: 爬树的甲壳虫 试题 F: 青蛙过河 试题 G: 最长不下 ...

  7. 蓝桥杯国赛 C/C++ ABC组题解(第四届 ~ 第十二届)

    2020年第十一届蓝桥杯国赛 题号 类型 C++ A组 C++ B组 C++ C组 试题A 结果填空 合数个数 美丽的 2 美丽的 2 试题B 结果填空 含 2 天数 (日期处理) 扩散 (BFS) ...

  8. 第十三届蓝桥杯大赛软件赛省赛(Java 大学B组)

    蓝桥杯 2022年省赛真题 Java 大学B组 试题 A: 星期计算 试题 B: 山 试题 C: 字符统计 试题 D: 最少刷题数 试题 E: 求阶乘 试题 F: 最大子矩阵 试题 G: 数组切分 试 ...

  9. 蓝桥杯 历届试题 分考场 (DFS)-----C语言—菜鸟级

    问题 1874: [蓝桥杯][2017年第八届真题]分考场 时间限制: 1Sec 内存限制: 128MB 提交: 62 解决: 12 题目描述 n个人参加某项特殊考试. 为了公平,要求任何两个认识的人 ...

  10. 临时抱佛脚之第十一届蓝桥杯国赛B组部分题解(Part 1)

    前言 酒可真是好东西啊,能让人一时间忘记不快的事. 但是一到明天就算不喜欢也还是会想起,而且比昨天更让人痛苦,想逃也逃不掉. --坂田银时 题目来源 蓝桥杯官网→学习资料→历届真题→竞赛→蓝桥杯真题 ...

最新文章

  1. oracle java数据类型转换函数_Oracle基础——单行函数(类型转换函数)
  2. java开发前的准备工作_三、开发java程序前的准备工作
  3. IBASE write buffer
  4. C ++中带有示例的llabs()函数
  5. DevExpress GridView 添加和设置右键菜单
  6. Loadrunner 第一个场景设计Controller
  7. h5语音识别和文字转语音
  8. Security+ 学习笔记15 非对称密码学
  9. 关于回车自动跳转的问题,能不能有选择的跳转??
  10. “校长”潘淳:侠之大者,一蓑烟雨任平生
  11. 笔记本电脑开机没画面/黑屏没反应怎么办?
  12. linux修改操作系统语言方法
  13. FCC Lifeline项目现已帮助美国低收入家庭接入高速互联网
  14. 软考(软件设计师)下午题 第二题
  15. [转载]Meta Learning单排小教学
  16. 小米推行高端化战略,但失去性价比优势或是它不可承受之重
  17. centOS 8 重启网络服务 / 重启网卡
  18. BottomNavigationView+Navigation 添加底部导航菜单切换时的fragment过渡动画animation
  19. 计算机网络之物理层(理论附带题目)
  20. 2014校园招聘笔试题的那些事儿

热门文章

  1. mysql临时表在哪找_MySQL 中的临时表
  2. 怎么隐藏服务器的ip地址
  3. 上传文件超过1Mb,返回413错误
  4. 病毒分析--WannaCry分析--1
  5. 简单制作一个百度注册页面
  6. MySQLdb 安装小结
  7. 在传统软件公司十年深恶痛绝的感受(转)
  8. 根据旋转矩阵计算角度差
  9. 蘑菇街服务器信息,蘑菇街开放平台
  10. JSP环境的搭建及程序初步