CSP-1 第10次 枚举法(组合问题)

csp李老师

2024-05-18 7:57:52
2024-05-28 7:57:52

信息与公告

组合:从n个不同元素中,任取m个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;
组合数:从n个不同元素中取出m个元素的所有组合的个数。
下面讨论当m是确定的数,如何枚举组合问题。

1、组合(不放回):对数组a中n个数任取3个数进行组合

sort(a+0, a+n);     // 如果要按字典升序列出所有排列,则可先对数组排序
for(inti=0; i<=n-1; i++)	// 枚举下标
	for(intj=i+1;j<=n-1; j++)	
		for(intk=j+1; k<=n-1; k++)

2、组合(可放回):对数组a中n个数任取3个数进行组合

sort(a+0, a+n);     // 如果要按字典升序列出所有排列,则可先对数组排序
for(inti=0; i<=n-1; i++)	// 枚举下标
	for(intj=i;j<=n-1; j++)	
		for(intk=j; k<=n-1; k++)