/*0.009s*/
#include<bits/stdc++.h>
using namespace std;
const int mx = 15;
int a[15];
bool ok[15];
/*
输出从n个数中选m个数的组合字典序
以n=7,m=3为例
首先构造ok=1110000
然后ok的前一个排列为1101000
再前一个排列为1100100...1100001
然后是1011000...直到0000111
*/
void printfC(int n, int m)
{
int i;
for (i = 0; i < m; ++i) ok[i] = true;
for (; i < n; ++i) ok[i] = false;
do
{
for (i = 0; i < n; ++i)
if (ok[i]) {printf("%d", a[i]); break;}
for (++i; i < n; ++i)
if (ok[i]) printf(" %d", a[i]);
putchar(10);
}
while (prev_permutation(ok, ok + n));
}
int main()
{
int n, i;
bool ok = false;
while (scanf("%d", &n), n)
{
if (ok) putchar(10);
else ok = true;
for (i = 0; i < n; ++i) scanf("%d", &a[i]);
printfC(n, 6);
}
return 0;
}
使用STL输出组合序列 + UVa 441 Lotto
原创
©著作权归作者所有:来自51CTO博客作者synapse的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
使用Python实现深度学习模型:序列到序列模型(Seq2Seq)
本文介绍了序列到序列(Seq2Seq)模型的基本原理,并使用 Python 和 TensorFlow/Keras 实现了一个简单的英法翻译模型。
编码器 tensorflow Python Seq2Seq -
uva 11995(stl)
题意:1 x,表示放进x元素,2表示拿出一个元素,
uva 数据结构 #include 数据 -
UVA Babelfish(STL map)
Problem C: Babelfish
#include Babel ios -
UVA 1595 (stl map vector)
题目大意:已知有一系列的点
ci c++ i++ -
UVA 10391 Compound Words——STL
直接套STL就过了,水题#include <cstdio
#include ios i++