博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
求和问题(DFS)
阅读量:5967 次
发布时间:2019-06-19

本文共 852 字,大约阅读时间需要 2 分钟。

输入:

n=4

a={1,2,4,7}

k=13

输出:

YES

输入:

n=4

a={1,2,4,7}

k=13

输出:

NO

 

选出若干数,使它们的和恰好为k

 

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 using namespace std;11 12 int a[55];13 int n,k;14 //已经从前i项得到了和sum,然后对于i项之后的进行分支15 bool dfs(int i,int sum)16 {17 //如果前n项都计算过了,则返回sum是否与k相等18 if(i==n) return sum==k;19 //不加a[i]的情况20 if(dfs(i+1,sum)) return true;21 //加上a[i]的情况22 if(dfs(i+1,sum+a[i])) return true;23 //无论是否加上a[i]都不能凑成k就返回false24 return false;25 }26 27 void solve()28 {29 if(dfs(0,0)) printf("YES\n");30 else printf("NO\n");31 }32 33 int main()34 {35 cin>>n;36 for(int i=0;i
>a[i];38 }39 cin>>k;40 solve();41 }

 

 

 

<<挑战程序设计竞赛>>读后感

转载于:https://www.cnblogs.com/wangmengmeng/p/5222707.html

你可能感兴趣的文章
quick-cocos2d-x开发环境Lua for IntelliJ IDEA的安装
查看>>
Target-Action回调模式
查看>>
换个红圈1微信头像恶搞一下好友
查看>>
Socket网络编程--简单Web服务器(3)
查看>>
ylbtech_dbs_article_五大主流数据库模型
查看>>
Java并发专题 带返回结果的批量任务运行 CompletionService ExecutorService.invokeAll
查看>>
10行Python代码解决约瑟夫环(模拟)
查看>>
一个简单好用的日志框架NLog
查看>>
超级硬盘数据恢复软件 4.6.5.0注冊码破解版
查看>>
一款基于jquery和css3实现的摩天轮式分享按钮
查看>>
Android创建启动画面
查看>>
Linux中date命令的各种实用方法--转载
查看>>
mysqld -install命令时出现install/remove of the service denied错误的原因和解决办法
查看>>
苹果企业版帐号申请记录
查看>>
C++ Error: error LNK2019: unresolved external symbol
查看>>
Bitmap 和Drawable 的区别
查看>>
Java操作mongoDB2.6的常见API使用方法
查看>>
如何给服务器设置邮件警报。
查看>>
CEF js调用C#封装类含注释
查看>>
麦克劳林
查看>>