七、题目:手链样式
小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。
他想用它们串成一圈作为手链,送给女朋友。
现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢?


思路分析:
读题后会发现这是一个圆排列和环排列的问题。需要去除重复
这个题首先一定要理解题意,转动和翻转是个什么意思。

转动就是我们所得到的的排列是个环,即起点不固定,具体点说即使1234和2341是一种方式(3421也一样)。

s2是否是是s的旋转等价于s2是否是s+s的子串

翻转就是,这个排列是个立体的,可以上下左右翻转,具体点说即如图所示


代码:

#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
using namespace std;int main(){string s="aaabbbbccccc";  //a,b,c分别指上面的三种样式
vector<string> v1;  //去重
int ans=0;
do{//排除重复,对于v1中的每个元素进行检查,如果存在s的旋转或者转动,则跳过int i=0; //i定义在外面,若提前进行break,i一定不等于v1.size() for(;i<v1.size();i++){  //需要一个栈 if(v1[i].find(s)!=string::npos) // v当中的旋转或翻转不是历史中的字符串//需要去和s中的字符串去比对 ,如果找到了,s不可用 break; //此break是上面for循环的结束 } //s不可用的情况//反向考虑,如果s可用的话,上面的for()循环应该走完,最后一次//i++上来 ,i终止的状态就应该等于v1.size ,当提前终止就是下面的情况 if(i!=v1.size())continue;string s2=s+s;v1.push_back(s2);//用于判断旋转的情况reverse(s2.begin(),s2.end());  //v1.push_back(s2); //将s2的反转放入vector中ans++;
}
while(next_permutation(s.begin(),s.end()));  //s每次都是一个新的排列
cout<<ans<<endl;
return 0;
}

2015蓝桥杯C++A:手链样式(圆排列和环排列)相关推荐

  1. 蓝桥杯python:手链样式

    题目:小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙. 他想用它们串成一圈作为手链,送给女朋友. 现在小明想知道:如果考虑手链可以随意转动或翻转,一共有多少不同的组合样式? 程序说明: 创建一个新函数,简单 ...

  2. 2015蓝桥杯b组java_Java实现第十一届蓝桥杯JavaB组 省赛真题

    试题 A: 指数计算 本题总分:5 分 [问题描述] 7 月1日是建党日,从1921年到2020年, 已经带领中国人民 走过了 99 年. 请计算:7 ^ 2020 mod 1921,其中A mod ...

  3. [2019蓝桥杯国赛B组c++][最优包含][排列数][解谜游戏][第八大奇迹]

    个人题解链接,蓝桥杯历届试题,正在更新中~ 文章目录 个人题解链接,蓝桥杯历届试题,正在更新中~ 一个大佬写了填空题的答案,点击下面链接 最优包含 排列数 解谜游戏 第八大奇迹 一个大佬写了填空题的答 ...

  4. 第八届蓝桥杯决赛 磁砖样式

    标题:磁砖样式 小明家的一面装饰墙原来是 3*10 的小方格. 现在手头有一批刚好能盖住2个小方格的长方形瓷砖. 瓷砖只有两种颜色:黄色和橙色. 小明想知道,对于这么简陋的原料,可以贴出多少种不同的花 ...

  5. 第八届蓝桥杯决赛 磁砖样式(枚举)

    标题:磁砖样式 小明家的一面装饰墙原来是 3*10 的小方格. 现在手头有一批刚好能盖住2个小方格的长方形瓷砖. 瓷砖只有两种颜色:黄色和橙色. 小明想知道,对于这么简陋的原料,可以贴出多少种不同的花 ...

  6. 2015蓝桥杯省赛---java---C---1(隔行变色)

    题目描述 Excel表的格子很多,为了避免把某行的数据和相邻行混淆,可以采用隔行变色的样式. 小明设计的样式为:第1行蓝色,第2行白色,第3行蓝色,第4行白色,.... 现在小明想知道,从第21行到第 ...

  7. 2015蓝桥杯省赛---java---B---6(加法变乘法)

    题目 加法变乘法 思路分析 两个算式进行相减操作 代码实现 package com.atguigu.lanqiao;public class Main { // 简单枚举public static v ...

  8. 【2015蓝桥杯省赛】C++ B组试题

    1.奖券数目 作答:52488,正确 #include <iostream> using namespace std;bool check(int x) {int a[10] = { 0 ...

  9. 2015蓝桥杯C++A:方程整数解;星系炸弹(3种解法)

    一.题目:方程整数解 方程: a^2 + b^2 + c^2 = 1000 这个方程有正整数解吗?有:a,b,c=6,8,30 就是一组解. 你能算出另一组合适的正整数解吗? 请填写该解中最小的数字. ...

最新文章

  1. python排名上升_Python在TIOBE Index排名或將取代Java成為第2名
  2. python configparse_python中ConfigParse模块的用法
  3. JavaScript 验证表单不为空和获取select下拉列表的值和文本
  4. android pdu 编码规则,[转载]PDU编码规则
  5. 人工智能-10种机器学习常见算法
  6. 学习一下企业管理信息化建设的“诺兰模型”
  7. Hadoop专业解决方案-第5章 开发可靠的MapReduce应用
  8. truetype字体怎么转换成普通字体_【转】TrueType(二)字体格式解析
  9. 第四天:目标规划(goal programming)
  10. 三圣花乡享地道农家乐
  11. Excel根据某列的值,用不同颜色区分数据行
  12. E. Exits in Excess
  13. C#合并两个(多个)集合
  14. mac电脑安装maple2017
  15. 刷新率属于计算机的显示性能指标吗,显示器性能指标(菜鸟必看)
  16. 二.MUI框架 开始体验MUI
  17. element ui input限制输入6位数字(短信验证码)
  18. 2021/12/14 nginx包下载安装步骤记录
  19. 20个戏剧性电影特效luts包 Dramatic LUTs
  20. 计算机一级b考试试题及答案,全国计算机等级考试一级B模拟试题及答案(一)

热门文章

  1. python3哪个版本稳定-Python 3.9 发布稳定版本,八大特性学起来!
  2. python和java选择哪个-观点|Java 与 Python:你应该选择哪个?
  3. python语言的读法-python是什么语言编写的
  4. micropython和python区别-MicroPython与Python速度对比
  5. 济南python工资一般多少-济南Python+人工智能
  6. python怎么读取中文文件-python: py2下 中文 的 文件读写 及 打印
  7. 零基础学python图文版-零基础学Minecraft编程(图文版) 中文pdf完整版[41MB]
  8. php和python-Python与PHP的一些区别
  9. 低延时互动直播双十一优惠活动
  10. python递归函数入门教程_Python递归函数