手链样式

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

请你提交该整数。不要填写任何多余的内容或说明性的文字。


一开始以为是搜索,发现不行,想了一会儿没有思路,看了题解。。。用了一个比较慢,但是想法简单的方法。

主要用了一些stl的函数,

#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#include<algorithm>
#include<string>
using namespace std; vector<string> strs; int main()
{
int sum=;
string str("aaabbbbccccc");
do
{
vector<string>::iterator it;
for(it=strs.begin();it!=strs.end();it++)
{
if((*it).find(str,)!=string::npos) //string的find函数
break;
}
if(it!=strs.end())
continue;
sum++;
string newstr=str+str; //转动
strs.push_back(newstr);
reverse(newstr.begin(),newstr.end()); //翻动
strs.push_back(newstr);
}while(next_permutation(str.begin(),str.end())); //next_permutation函数
cout<<sum<<endl;
return ;
}

最新文章

  1. [实践] Android5.1.1源码 - 在Framework中添加自定义系统服务
  2. 【转】HiveQL:对数据定义的学习
  3. PHP服务器配置环境变量
  4. 微信WeixinJSBridge API
  5. linux内核源码阅读之facebook硬盘加速利器flashcache
  6. 学习笔记TF020:序列标注、手写小写字母OCR数据集、双向RNN
  7. 自己写的日志框架--linkinLog4j--日志框架的必要性
  8. 分享python分析wave, pcm音频文件
  9. Oracle 启动监听命令
  10. C#中try catch finally 用法
  11. java————数组 简单写出一个管理系统
  12. 简述nginx(1)
  13. curl请求https请求
  14. WPF InkCanvas 书写毛笔效果
  15. Windows环境下 PHP调用R脚本
  16. Python学习记录之----网络通信(一)
  17. 爬虫学习06用selenium爬取空间
  18. linux基本命令练习
  19. 42-2017蓝桥杯b java
  20. Java 装饰器模式详解

热门文章

  1. Linux下C编程的学习_1
  2. 读书笔记:Information Architecture for the World Wide Web, 3rd Edition 北极熊 第一部分 1-3
  3. Java中的字节输入出流和字符输入输出流
  4. easyUI 对话框的关闭事件
  5. UnicodeEncodeError:&#39;latin-1&#39; codec can&#39;t encode character
  6. RK3288][Android6.0] 调试笔记 --- 关闭按键音后无法录音问题【转】
  7. JQuery 日期选择框
  8. securecrt中vim行号下划线问题及SecureCRT里root没有高亮的设置,修改linux终端命令行颜色
  9. 洛谷P1291 [SHOI2002]百事世界杯之旅——期望DP
  10. 02_cfork分叉进程