第六届 蓝桥杯 第七题 手链样式 枚举 暴力 解题报告
来源:互联网 发布:网络十大禁书合集下载 编辑:程序博客网 时间:2024/06/02 12:35
手链样式
小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。
他想用它们串成一圈作为手链,送给女朋友。
现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢?
代码:
答案:1170
小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。
他想用它们串成一圈作为手链,送给女朋友。
现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢?
请你提交该整数。不要填写任何多余的内容或说明性的文字。
思路:由于可以翻转,那么将其扩大两倍,例如abcd,bcdabcda(中找abcd) 能找到就是一种情况
vector的用法: http://www.cnblogs.com/wang7/archive/2012/04/27/2474138.html
vector<int>::iterator it;//vector遍历元素的方法for(it=vec.begin();it!=vec.end();it++) cout<<*it<<endl;
代码:
#include <iostream>#include <algorithm>#include <string>#include <vector>using namespace std;int main(){ vector<string> v;//存已经找到的 int sum = 0; string str = "aaabbbbccccc"; do { vector<string>::iterator it; for(it=v.begin(); it != v.end(); it++) { //当寻找失败返回string::npos 值为4294967295 if((*it).find(str, 0) != string::npos) { break; } } if( it != v.end() ) continue; string str2 = str + str; //可以任意转动的缘故 v.push_back(str2); reverse(str2.begin(), str2.end()); //可以任意翻转的缘故 v.push_back(str2); sum ++; } while(next_permutation(str.begin(), str.end())); cout << sum ;}
答案:1170
2 0
- 第六届 蓝桥杯 第七题 手链样式 枚举 暴力 解题报告
- 蓝桥杯 手链样式(暴力)
- 蓝桥杯 手链样式 枚举
- 第六届蓝桥杯A组C/C++ 第七题 手链样式
- 2015 第六届 蓝桥杯省赛 手链样式
- 第六届蓝桥杯-手链样式
- 手链样式 --蓝桥杯
- 蓝桥杯 手链样式 排列组合
- 蓝桥杯 手链样式 next_permutation
- 蓝桥杯_手链样式(排列)
- POJ 1166&IOI 1994 The blocks 暴力枚举 解题报告
- 手链样式
- 手链样式
- 20160320 第七届蓝桥杯前7题 解题报告
- POJ1013解题报告 暴力搜索
- 比萨(Pizza)解题报告 - 暴力枚举加位运算加速
- 蓝桥 手链样式
- leetcode第七周解题报告
- PID=4被占用解决办法
- git常用指令
- RBM 受限玻尔兹曼机
- 帮助文档:使用VNCServer远程连接服务器
- Mahout学习路线图
- 第六届 蓝桥杯 第七题 手链样式 枚举 暴力 解题报告
- 【总结】ImageView的使用
- 颜色表及html代码
- leetcode 40. Combination Sum II
- fckeditor 怎么能将上传图片的名称改成时间格式的
- IIetacilpuDsniatnoC.219
- 哈理工oj2223
- Linux C语言编程------网络编程基础
- javascript之函数