网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
可签
7
级以上的吧
50
个
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月11日
漏签
0
天
半条命16吧
关注:
392
贴子:
26,032
看贴
图片
吧主推荐
视频
玩乐
4
回复贴,共
1
页
<返回半条命16吧
>0< 加载中...
AcWing92
只看楼主
收藏
回复
Velikaya
曲面积分
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
送TA礼物
IP属地:内蒙古
1楼
2022-01-14 15:26
回复
Velikaya
曲面积分
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
本题可以用递归+DFS的方式解决,我们假设一开始为3,对每个数的所有可能性进行遍历,不难得出这样一颗递归树
我们要做的,就是对这棵树进行DFS
IP属地:内蒙古
2楼
2022-01-14 15:33
回复
收起回复
2025-06-11 10:50:58
广告
Velikaya
曲面积分
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我们先设置一个全局变量n,这是我们要输入的数据
然后设置一个状态数组state,来存储每个被遍历到的数字的状态,0为还没有选择,1为选定,2为放弃
private static int[] state=new int[16];//0未选,1选定,2放弃
private static int n;
IP属地:内蒙古
3楼
2022-01-14 15:36
回复
收起回复
Velikaya
曲面积分
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
然后我们开始写dfs函数,对这颗递归树进行搜索
private static void dfs(int k){
if(k>n){
for(int i=1;i<=n;i++)
if(state[i]==1)
sout(i+" ");
sout();
return;
//这一部分,是在进行一次到底端的搜索之后的输出。在下面的代码中,state[]中的数据将会被赋予两个值,也就是1和2,并对这两种情况分别进行递归(向下搜索),一直到搜索到尽头,这个时候。就遍历state[],对其中值为1的位置所对应的数字输出(这里我们令i的初始值为1,这样就与state[]的下标对应上了),在遍历完一轮时候,换行,然后结束(返回上一层)
..................
}
IP属地:内蒙古
4楼
2022-01-14 15:43
回复
收起回复
Velikaya
曲面积分
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
private static void dfs(int k){
.................
//我们上面说,state[]中的数据将会被赋予两个值,这几行代码,就是给当前数字的状态赋值的,分别让它不取和取,然后对改变状态后的树继续搜索。搜索结束后,把state[]恢复原状,其中进入到dfs(k+1)的搜索后,照样会有对子状态的取值,这便实现了分支
state[k]=2;
dfs(k+1);
state[k]=0;
state[k]=1;
dfs(k+1);
state[k]=0;
}
main函数里比较简单,不再说了
public static void main(String[] args) throws IOException {
BufferedReader cin=new BufferedReader(new InputStreamReader(System.in));
String[] str=cin.readLine().split(" ");
n=Integer.parseInt(str[0]);
dfs(1);
}
IP属地:内蒙古
5楼
2022-01-14 15:47
回复
收起回复
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧热议榜
1
WOL零封TH获世界赛首胜
1939230
2
利物浦1.5亿欧签下维尔茨值得吗
1575367
3
洛杉矶市中心实施宵禁
1281616
4
国足1比0点杀巴林
905931
5
王楚钦赛间曾出现低血糖
793130
6
吧友实测苹果iOS.26系统
760175
7
华为Pura80系列今日发布
723936
8
洛杉矶乱成一锅粥
714932
9
wwdc25:全新液态玻璃
624382
10
日本政府投放老陈米引发抢购潮
477645
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示