2015蓝桥杯C++A:手链样式(圆排列和环排列)
七、题目:手链样式
小明有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:手链样式(圆排列和环排列)相关推荐
- 蓝桥杯python:手链样式
题目:小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙. 他想用它们串成一圈作为手链,送给女朋友. 现在小明想知道:如果考虑手链可以随意转动或翻转,一共有多少不同的组合样式? 程序说明: 创建一个新函数,简单 ...
- 2015蓝桥杯b组java_Java实现第十一届蓝桥杯JavaB组 省赛真题
试题 A: 指数计算 本题总分:5 分 [问题描述] 7 月1日是建党日,从1921年到2020年, 已经带领中国人民 走过了 99 年. 请计算:7 ^ 2020 mod 1921,其中A mod ...
- [2019蓝桥杯国赛B组c++][最优包含][排列数][解谜游戏][第八大奇迹]
个人题解链接,蓝桥杯历届试题,正在更新中~ 文章目录 个人题解链接,蓝桥杯历届试题,正在更新中~ 一个大佬写了填空题的答案,点击下面链接 最优包含 排列数 解谜游戏 第八大奇迹 一个大佬写了填空题的答 ...
- 第八届蓝桥杯决赛 磁砖样式
标题:磁砖样式 小明家的一面装饰墙原来是 3*10 的小方格. 现在手头有一批刚好能盖住2个小方格的长方形瓷砖. 瓷砖只有两种颜色:黄色和橙色. 小明想知道,对于这么简陋的原料,可以贴出多少种不同的花 ...
- 第八届蓝桥杯决赛 磁砖样式(枚举)
标题:磁砖样式 小明家的一面装饰墙原来是 3*10 的小方格. 现在手头有一批刚好能盖住2个小方格的长方形瓷砖. 瓷砖只有两种颜色:黄色和橙色. 小明想知道,对于这么简陋的原料,可以贴出多少种不同的花 ...
- 2015蓝桥杯省赛---java---C---1(隔行变色)
题目描述 Excel表的格子很多,为了避免把某行的数据和相邻行混淆,可以采用隔行变色的样式. 小明设计的样式为:第1行蓝色,第2行白色,第3行蓝色,第4行白色,.... 现在小明想知道,从第21行到第 ...
- 2015蓝桥杯省赛---java---B---6(加法变乘法)
题目 加法变乘法 思路分析 两个算式进行相减操作 代码实现 package com.atguigu.lanqiao;public class Main { // 简单枚举public static v ...
- 【2015蓝桥杯省赛】C++ B组试题
1.奖券数目 作答:52488,正确 #include <iostream> using namespace std;bool check(int x) {int a[10] = { 0 ...
- 2015蓝桥杯C++A:方程整数解;星系炸弹(3种解法)
一.题目:方程整数解 方程: a^2 + b^2 + c^2 = 1000 这个方程有正整数解吗?有:a,b,c=6,8,30 就是一组解. 你能算出另一组合适的正整数解吗? 请填写该解中最小的数字. ...
最新文章
- python排名上升_Python在TIOBE Index排名或將取代Java成為第2名
- python configparse_python中ConfigParse模块的用法
- JavaScript 验证表单不为空和获取select下拉列表的值和文本
- android pdu 编码规则,[转载]PDU编码规则
- 人工智能-10种机器学习常见算法
- 学习一下企业管理信息化建设的“诺兰模型”
- Hadoop专业解决方案-第5章 开发可靠的MapReduce应用
- truetype字体怎么转换成普通字体_【转】TrueType(二)字体格式解析
- 第四天:目标规划(goal programming)
- 三圣花乡享地道农家乐
- Excel根据某列的值,用不同颜色区分数据行
- E. Exits in Excess
- C#合并两个(多个)集合
- mac电脑安装maple2017
- 刷新率属于计算机的显示性能指标吗,显示器性能指标(菜鸟必看)
- 二.MUI框架 开始体验MUI
- element ui input限制输入6位数字(短信验证码)
- 2021/12/14 nginx包下载安装步骤记录
- 20个戏剧性电影特效luts包 Dramatic LUTs
- 计算机一级b考试试题及答案,全国计算机等级考试一级B模拟试题及答案(一)
热门文章
- python3哪个版本稳定-Python 3.9 发布稳定版本,八大特性学起来!
- python和java选择哪个-观点|Java 与 Python:你应该选择哪个?
- python语言的读法-python是什么语言编写的
- micropython和python区别-MicroPython与Python速度对比
- 济南python工资一般多少-济南Python+人工智能
- python怎么读取中文文件-python: py2下 中文 的 文件读写 及 打印
- 零基础学python图文版-零基础学Minecraft编程(图文版) 中文pdf完整版[41MB]
- php和python-Python与PHP的一些区别
- 低延时互动直播双十一优惠活动
- python递归函数入门教程_Python递归函数