| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4234 人关注过本帖, 1 人收藏
标题:初学Dfs算法,送出水题2道
取消只看楼主 加入收藏
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:0 
程序代码:
#include<bits/stdc++.h>
using namespace std;
int n,t,a[10010];
bool flg=false;
void dfs(int i,int sum){
    if(i==n){
        if(sum==t)flg=true;
        return;
    }
    dfs(i+1,sum+a[i]);
    dfs(i+1,sum);
}
int main(){
    cin>>n>>t;
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    dfs(0,0);
    if(flg)cout<<"YES";
    else cout<<"NO"; 
    return 0;
}

2020-03-04 19:27
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:0 
其实这种dfs(深度优先搜索)比跟枚举差不多快,但是写起来简单

2020-03-04 19:29
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:0 
现在全部分值移动到第二题。

2020-03-04 19:29
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:0 
回复 23楼 wmf2014
填对了

2020-03-04 20:33
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:0 
呵呵

2020-03-05 08:44
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:0 
我提示一个吧
void dfs(int i,int t1,int t2){
    if(i==n){
        if(t1==t2)flg=true;  
        return;
    }
    dfs(i+1,t1+a[i],t2);
    dfs(?????);
}

2020-03-05 08:46
快速回复:初学Dfs算法,送出水题2道
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018228 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved