题目链接
http://noi-test.zzstep.com/contest/0x00%E3%80%8C%E5%9F%BA%E6%9C%AC%E7%AE%97%E6%B3%95%E3%80%8D%E4%BE%8B%E9%A2%98/0302%20%E9%80%92%E5%BD%92%EF%BC%8F%E9%9D%9E%E9%80%92%E5%BD%92%E5%AE%9E%E7%8E%B0%E7%BB%84%E5%90%88%E5%9E%8B%E6%9E%9A%E4%B8%BE
分析
递归实现组合型枚举是非常简单的,而此处的非递归版其实是手动模拟栈。
所以先来了解下“堆栈结构”实现函数调用的基本过程:
先把函数所需的第 k k k 个,第 k − 1 k - 1 k−1 个,…,第 1 1 1 个参数依次入栈,然后将函数调用的下一条语句的地址入栈,再跳转到调用函数处继续执行指令。
AC代码
#include <cstdio>
const