首页 > 递归实现指数型枚举
头像 CAICAIIs
发表于 2019-08-19 16:58:33
题目描述从 1\sim n1∼n这 n (n \leq 16)(n≤16) 个整数中随机选取任意多个,输出所有可能的选择方案。 输入描述:一个整数n。 输出描述:每行一种方案。同一行内的数必须升序排列,相邻两个数用恰好1个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行 展开全文
头像 花子君哦
发表于 2024-04-23 15:06:07
链接:https://ac.nowcoder.com/acm/contest/998/A 打开就是题目!! 番外话:你玩蛋仔吗? eeeee~我是大白鹅 好吧,其实这道题简单爆了!!!,一个递归(深搜)就解决了 上代码!!!!!! #include <bits/stdc++.h> usi 展开全文
头像 Boops
发表于 2020-02-28 16:52:49
第一次写题解,如有不对的地方还请各位指正。 首先说一下这个题目的坑点。 可以不选任何一个数,对于没有选任何数的方案,输出空格。 自定义校检器(SPJ)在自测时时没有用的。 然后是算法的部分 展开全文
头像 GenmCai
发表于 2019-08-29 10:26:14
【题目】 从 这个整数中随机选取任意多个,输出所有可能的选择方案。 每行一种方案。同一行内的数必须升序排列,相邻两个数用恰好1个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。 【题解】 DFS,即深度优先搜索。深度、优先、搜索。即可以把单行 展开全文
头像 小毅儿
发表于 2020-10-25 15:56:32
从1~n中随机选择数输出(可以什么也不输出),请输出所有的可能,每种可能占一行。(n最大值是16) 思路:一共有2^n种可能,可以用二进制解决。 #include <cstdio> #include <cstring> #include <string> #inc 展开全文
头像 睡觉趁年华
发表于 2022-09-18 09:07:54
题目描述 链接:https://ac.nowcoder.com/acm/contest/998/A 从 1\sim n1∼n这 n (n \leq 16)(n≤16) 个整数中随机选取任意多个,输出所有可能的选择方案。 输入描述 一个整数n。 输出描述 每行一种方案。同一行内的数必须升序排列,相邻两 展开全文
头像 Trkly
发表于 2020-08-24 17:58:31
更好的阅读体验: https://www.cnblogs.com/Acapplella/p/13548547.html 题目描述 从 1~n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。 输入格式 输入一个整数n。 输出格式 每行输出一种方案。 同一行内的数必须升序排列,相邻两个数用恰 展开全文
头像 牛客508497775号
发表于 2020-10-31 13:43:45
题意就是要求解出有n个盘子四个塔的汉诺塔问题。三个塔的经典汉诺塔很好解。用sum[n]表示有n个盘子三个塔的答案,能得到如下递推式d[n]=d[n-1]*2+1表示先把n-1个盘子从1塔移到2塔,再把第n个盘子移到3塔,再把n-1个盘子从2塔移到3塔。现在考虑4塔的情况。用num[n]表示n个盘子四 展开全文
头像 孤客20191108181531
发表于 2021-01-12 11:52:18
栈实现指数型枚举 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 题目描述 从 1∼n这 n (n≤16) 个整数中随机选取任意多个,输出所有可能的选择方案。 输入描述: 一个整数n。 输出描述: 每行一种方案。同一行内的数必须升序排列,相邻两 展开全文
头像 RandolphJ
发表于 2019-12-13 13:16:32
dfs搜索每一位选什么数 #include<cstdio> using namespace std; int n,b[20]; bool a[20]; void dfs(int x,int pre){ for (int i=1;i<=x;i++) printf("%d ", 展开全文