[귀속 입문] 조합된 출력

1527 단어 샅샅이 뒤지다

문제 B:[귀속 입문] 조합의 출력


시간 제한: 1Sec
메모리 제한: 128MB

제목 설명


배열과 조합은 자주 사용하는 수학 방법이다. 그 중에서 조합은 n개의 원소에서 r개의 원소(순서와 r<=n)를 추출하는 것이다. 우리는 간단하게 n개의 원소를 자연수 1, 2,..., n으로 이해하고 그 중에서 r개의 수를 취할 수 있다.현재 귀속적인 방법으로 모든 조합을 출력할 것을 요구합니다.예를 들어 n=5, r=3, 모든 조합은 1 2 3 1 2 4 1 2 5 1 3 4 1 3 5 1 4 5 2 3 2 3 2 2 4 5 3 4 5 5

입력


한 줄에 두 개의 자연수 n, r(1

출력


모든 조합, 모든 조합이 한 줄을 차지하고 그 중의 요소는 작은 것에서 큰 것까지의 순서에 따라 배열되며 모든 조합도 사전의 순서에 따라 배열된다.
#include
bool book[30];
int n,r,order[30],cnt;
void dfs(int cur);
void show();
int main()
{	
	scanf("%d%d",&n,&r);
	dfs(0);
	return 0;
}
void dfs(int cur)
{
	if(cur==r)
	{
		show();
		cnt++;
		return ;
	}
	for(int i=1;i<=n;i++)
	{
		if(i>n-(r-cur-1))
			return ;
		if(book[i]==false&&(cur==0||order[cur-1]

좋은 웹페이지 즐겨찾기