网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
可签
7
级以上的吧
50
个
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
10月16日
漏签
0
天
半条命16吧
关注:
393
贴子:
26,041
看贴
图片
吧主推荐
视频
玩乐
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
回复
收起回复
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
赢了!国足2比1战胜印尼
2973270
2
王楚钦孙颖莎退出全锦赛
2161631
3
朝鲜140万人参军或复队
1873340
4
朝鲜炸毁韩朝边境部分道路
1848771
5
FLY辅助称能赢GEN战队
1661530
6
郑钦文入围WTA年终总决赛
1613975
7
金正恩阐明强硬的军事立场
1174848
8
黄雨婷盛李豪分别摘金夺冠
934766
9
育碧法国员工举行罢工
807950
10
鹰角新游《泡姆泡姆》推出试玩
664251
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示