poj3628
2014-04-15 20:10
232 查看
DP,dfs,01背包都可解答
#include<stdio.h> #include<string.h> #include<stdlib.h> int n,b; int num[25]; int min=0x7fffffff; void dfs(int t,int h) { if(t==n) { if(h<b) return; else { if(h<min) { min=h; } return; } } h=h+num[t]; dfs(t+1,h); h=h-num[t]; dfs(t+1,h); } int main() { int i; scanf("%d%d",&n,&b); for(i=0;i<n;i++) { scanf("%d",&num[i]); } dfs(0,0); printf("%d\n",min-b); return 0; }
相关文章推荐
- MongoDB学习之旅十四:MongoDB 数据备份与恢复
- 科目三电子路考操作流程
- POJ1743 - Musical Theme(后缀数组)
- 对于Context的理解
- 【POJ 1321 逐行深搜】
- 苹果手机获取设备唯一UDID号
- java通过实体类自动生成ibatis文件
- 【2048强势来袭】第七期:添加游戏分数模块
- UESTC 250 windy数(数位DP)
- GCC内嵌汇编语言
- leetcode-Binary Tree Level Order Traversal(2014.1.22)
- linux 调用动态库so文件
- poj3624
- 微软面试100题之17题:在一个字符串中找到第一个只出现一次的字符
- week 8.2
- VS 2012内存泄漏检测之 vld ( cocos2d-x 检测内存泄漏)
- 百度面试题query的分类排序
- ActiveX添加测试工程, 出现的问题[非选择性参数][找不到成员]
- 虚函数精解
- leetcode-Binary Tree Level Order Traversal II(2014.1.27)