题目描述
从 1∼n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。
输入格式
输入一个整数 n。
输出格式
每行输出一种方案。
同一行内的数必须升序排列,相邻两个数用恰好 1 个空格隔开。
对于没有选任何数的方案,输出空行。
本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。
数据范围
1≤n≤15
解题思路
1.状态压缩解法
n的范围很小,我们考虑使用状态压缩,最多15位,依次代表数字1~15,如果这个数出现,就为1,否则为0。
那么所有的状态就是2^{15}=32768种。
2.递归
列举出所有情况即可,从1开始选,要么选上,要么不选,每个数都是两种情况,时间复杂度O(2^n);
原文链接: https://www.cnblogs.com/cpp123/p/15822624.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/186735
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!