NYoj The partial sum problem(简单深搜+优化)
2015-09-29 14:13
253 查看
题目链接:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=927
代码:
代码:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include <algorithm> #include <iostream> using namespace std; int n,k; int a[21]; int sum=0; bool v[21]; int DFS(int sum,int m) { if(sum==k) { return 1; } for(int j=m;j<n;j++) { v[j]=true; if(DFS(sum+a[j],j+1)) return 1;//要深刻理解这个递归 v[j]=false; } return 0; } int main() { while(~scanf("%d",&n)){ for(int i=0;i<n;i++){ scanf("%d",&a[i]); } scanf("%d",&k); if(DFS(0,0)) printf("Of course,I can!\n"); else printf("Sorry,I can't!\n"); } }
相关文章推荐
- HTML5表单新增元素与属性
- dispatch
- 【c语言】 寻找十个整数中的最大值
- 剑指OFFER---9
- iOS开发UI篇—常见的项目文件介绍
- iOS开发UI篇—直接使用UITableView Controller
- 托福备考需要准备哪些材料【zhasite】
- 【Android应用开发技术:网络通信】Android下的SOAP处理
- 源码下载网址
- Oracle性能查看和表空间查看
- input使用javascript限制输入带小数的数字
- 防火墙过滤
- PresentViewController 切换界面
- 页面条件显示规则
- 4.4webview上传问题
- java:判断二进制数据中第n位是否为1
- stm32独立看门狗和窗口看门狗的区别
- 穷其一生,做不完一场梦
- 有用
- 犀牛——第20章 客户端存储