下面 pailie 函数是一个实现排列的程序,横线处可以填入的是()。
#include <iostream>
using namespace std;
int sum = 0;
void swap(int & a, int & b) {
int temp = a;
a = b;
b = temp;
}
void pailie(int begin, int end, int a[]) {
if (begin == end) {
for (int i = 0; i < end; i++)
cout << a[i];
cout << endl;
}
for (int i = begin; i < end; i++) {
__________ // 在此处填入选项
}
}
排列组合问题:先判断是否考虑顺序(排列P vs 组合C),再确定是否允许重复。乘法原理分步,加法原理分类。
区分排列(考虑顺序,$P(n,m)$)和组合(不考虑顺序,$C(n,m)$)。注意特殊元素优先处理、正难则反等计数技巧。
【考点】回溯法|全排列|递归
GESP 八级算法模块,全排列是回溯法的经典应用场景。命题人想卡住那些只背"固定首元素→递归"却忽略"回溯还原"的考生,这是递归与状态管理的分水岭。