| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3988 人关注过本帖, 1 人收藏
标题:初学Dfs算法,送出水题2道
取消只看楼主 加入收藏
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:15 
初学Dfs算法,送出水题2道
1.子集的和
给定n个正整数,请从中找出一些子集组合,使得子集和恰好等于一个给定的目标t。
如果找到满足的条件了,输出“YES”,否则输出“NO”
如给出:3 5 4 7 6,目标t为10,
因为3+7、4+6满足条件,所以输出“YES”(提示请select后面一行字)
提示: 这题没有提示!!!因为它简单到我给不出提示!!!
2.平分子集 1
给定n个正整数,请将它们分成两组,要求这两组数字的和完全相等,(不要求两组数字的数量相等),如果可行,则输出"YES",否则输出"NO"。
如给出:3 5 4 7 6
因为没有满足条件的项,所以输出“NO”(提示请select后面一行字)
提示: dfs(i+1,sum1+a[i],sum);



[此贴子已经被作者于2020-3-2 19:21编辑过]

搜索更多相关主题的帖子: 两组 给定 算法 输出 提示 
2020-03-02 19:17
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:0 
他输出的是:
02
31

2020-03-02 19:38
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==?????){
        if(?????==t)flg=?????;
        return;
    }
    dfs(i+1,?????);
    dfs(i+1,?????);
}
int main(){
    cin>>?????>>t;
    for(int i=?????;i<?????;i++){
        ?????
    }
    dfs(?????,?????);
    if(?????)cout<<"YES";
    else cout<<"NO"; 
    return 0;
}

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

2020-03-02 19:44
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:0 
他貌似不让我输入耶

2020-03-02 19:45
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:0 
第二个我贴代码,但不填主要部分

2020-03-03 08:24
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:0 
Input
4
2 3 4 9
Output
YES

2020-03-03 08:25
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:0 
程序代码:
#include<bits/stdc++.h>
using namespace std;
int n,a[10010];
bool flg=false;
void dfs(int i,int t1,int t2){
    if(i==n){
        if(?????)flg=true;
        return;
    }
    dfs(?????);
    dfs(?????);
} 
int main(){
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>a[?????];
    }
    dfs(?????);
    if(?????)cout<<"YES";
    else cout<<"NO"; 
    return 0;
}

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

2020-03-04 18:57
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:0 
我贴完整代码:

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



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

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