九度 1358 陈博的平均主义
2011-12-22 09:53
211 查看
http://ac.jobdu.com/problem.php?id=1358
好久没做题了,真希望没有任何考试,大家学自己喜欢学的,太多的规则束缚。。
DFS,暂时还没想到别的好办法 下面是几个剪枝
1)所有数字总合为奇数
2)当前总合已大于所有总合一半
一次AC,没排序,不知道排序后能不能有更好的剪枝,不过看了下榜,第一名了已经,应该没有太好的办法了
好久没做题了,真希望没有任何考试,大家学自己喜欢学的,太多的规则束缚。。
DFS,暂时还没想到别的好办法 下面是几个剪枝
1)所有数字总合为奇数
2)当前总合已大于所有总合一半
一次AC,没排序,不知道排序后能不能有更好的剪枝,不过看了下榜,第一名了已经,应该没有太好的办法了
#include <stdio.h> int N,num[10]; int A,B; int res=0; bool flag=false; void dfs(int cur_num,int cur_pos) { if(flag) return; if(cur_num*2>res) return; if(cur_num*2==res){ flag=1; return; } if(cur_pos>=N) return; dfs(cur_num+num[cur_pos],cur_pos+1); dfs(cur_num,cur_pos+1); } int tran(int n) { res=0; int i=0; while(n){ num[i++]=n%10; res+=n%10; n/=10; } return i-1; } bool check(int n) { N=tran(n); flag=false; if(res%2!=0) return false; dfs(0,0); if(flag) return true; return false; } int main() { while(scanf("%d%d",&A,&B)!=EOF){ int i,num=0;; for(i=A;i<=B;i++){ if(check(i)) num++; } printf("%d\n",num); } }
相关文章推荐
- 【九度】题目1358:陈博的平均主义
- 九度OJ 1358:陈博的平均主义 (遍历、递归)
- 九度OJ 1358:陈博的平均主义 (遍历、递归)
- 九度笔记之 1358:陈博的平均主义
- JD 1358:陈博的平均主义 && JD 1420:Jobdu MM分水果(01背包)
- <C/C++算法>九度OJ题目1201--1358解题练习(六)
- 九度OJ 1375 陈博的完美主义 (枚举,细心细心)
- 【九度】题目1375:陈博的完美主义(25分)
- 九度 1375 陈博的完美主义
- 【剑指Offer面试编程题】题目1352:和为S的两个数字--九度OJ
- 九度OJ 1074 对称平方数
- 九度OJ 1015 还是A+B
- 九度oj1182:统计单词
- 八皇后代码--九度oj-1140
- 九度 题目1011:最大连续子序列
- 九度OJ题目1014:排名
- 九度OJ:题目1062:分段函数
- 九度1019 简单计算器
- 九度-北邮-1473-二进制
- <C/C++算法>九度OJ题目1465--1515解题练习(九)