手链样式( 使用全排列函数next_permutation)
来源:互联网 发布:德州电锯杀人狂知乎 编辑:程序博客网 时间:2024/04/29 09:17
原题:手链样式
小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。
他想用它们串成一圈作为手链,送给女朋友。
现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢?
请你提交该整数。不要填写任何多余的内容或说明性的文字。
#include <iostream> #include <cstdio> #include <cstring> #include <string> #include <cmath> #include <vector> #include <algorithm> #include <map> const int N = 1001; using namespace std; typedef __int64 LL; map<LL,int> m; int cnt[20] = {1,1,1,2,2,2,2,3,3,3,3,3}; bool solve(int a[]) { for(int i=0;i<12;i++) { LL tmp = 0; for(int j = i;j<12;j++) { tmp = tmp *10 + a[j]; } for(int j = 0;j<i;j++) tmp = tmp *10 + a[j]; //printf("%I64d\n",tmp); if(m[tmp]){} else { m[tmp] = 1; return true; } } LL tmp = 0; for(int i=11;i>=0;i--) tmp = tmp *10 + a[i]; if(m[tmp]){} else { m[tmp] = 1; return true; } return false; } int main() { int ans = 0; //solve(cnt); while(next_permutation(cnt,cnt+12)) { LL tmp = 0; for(int i=0;i<12;i++) { tmp = tmp * 10 + cnt[i]; } //printf("%I64d\n",tmp); if(solve(cnt)) { ans++; } } printf("%d\n",ans); return 0; }
0 0
- 手链样式( 使用全排列函数next_permutation)
- 蓝桥杯 手链样式 next_permutation
- 全排列 next_permutation()函数
- 使用next_permutation函数生成全排列
- 全排列函数next_permutation,prev_permutation
- 全排列函数 next_permutation()
- 【全排列】next_permutation函数 【algorithm】
- next_permutation函数(全排列)
- next_permutation函数(全排列)
- 1384 全排列 next_permutation()函数
- 使用STL的next_permutation函数生成全排列(C++)
- 使用STL的next_permutation函数生成全排列(C++)
- 使用STL的next_permutation函数生成全排列(C++)
- 使用STL的next_permutation函数生成全排列(C++)
- 使用STL的next_permutation函数生成全排列(C++)
- 使用STL的next_permutation函数生成全排列(C++)
- 使用STL的next_permutation函数生成全排列(C++)
- 使用STL的next_permutation函数生成全排列(C++)
- PHP闭包
- JVM学习笔记–第一篇 运行时数据区域
- LeNet: the MNIST Classification Model
- C#编程总结(九)字符编码
- 我的C语言之路1
- 手链样式( 使用全排列函数next_permutation)
- 23种设计模式趣解
- 通过CXF的jaxws:client调用SOAP服务
- Tabs Outliner(标签系统)
- 什么是项目生命周期?如何划分项目阶段?有什么意义?
- boost::asio编写的异步服务器和客户端
- android studio 模拟器的选择
- 【C++探索之旅】第一部分第十一课:小游戏,猜单词
- 代理