poj 2245 Lotto(dfs)

时间:2023-03-08 21:19:57

题目链接:http://poj.org/problem?id=2245

思路分析:无重复元素组合组合问题,使用暴力枚举法,注意剪枝条件。

代码如下:

#include <iostream>
using namespace std; const int MAX_N = ;
int n, k = ;
int Set[MAX_N], A[MAX_N]; void Comnination( int deep, int index )
{
if ( deep == k )
{
int i; for ( i = ; i < k - ; ++i )
cout << A[i] << " ";
cout << A[i] << endl;
}
else
if ( index == n && deep != k )
return;
else
{
for ( int i = index; i < n; ++i )
{
A[deep] = Set[i];
Comnination( deep + , i + );
}
}
} int main( )
{
while ( cin >> n )
{
if ( n == )
break; for ( int i = ; i < n; ++i )
cin >> Set[i]; Comnination( , );
cout << endl;
} return ;
}