九度笔记之 1358:陈博的平均主义
2013-08-02 13:53
232 查看
题目1358:陈博的平均主义
时间限制:1 秒内存限制:32 兆
特殊判题:否
提交:240
解决:117
题目描述:
在JOBDU团队里,陈博是最讲平均主义的人了,但并不是像梁山好汉那样能够做到有钱同花,有肉同吃,毕竟,他还是被家里的领导管着的……陈博的平均主义,就只能体现在他对数字的喜好了。陈博特别喜欢一类“平均数”,“平均数”的具体定义为:
对于一个数字,当其以十进制形式表示时,我们可以将其每一位的数字分为两堆,两堆数字的和是相等的。
例如,数字363就是一个理想的平均数,因为我们可以将其分为相等的两堆{3, 3}, {6}。
现在陈博就要考考你了,看你是否掌握了他的平均主义。假如给你一个整数范围[A, B],你是否能找出,在这个范围内,究竟有多少“平均数“?
输入:每个测试文件包含多个测试案例,每个测试案例一行,每行包括两个整数A、B,其中[A,B]这个待查看的整数范围。其中我们能保证1 <= A <= B <= 109,且0 <= B – A <= 105。
输出:对于每个整数范围[A, B],返回一个整数,表明这个整数范围内有多少个整数是陈博所喜欢的“平均数”。
样例输入:
1 50 1 1000
样例输出:
4 135
算法分析
[b]这道题和 题目1420:Jobdu MM分水果 可以看作同一题。[/b]
[b]
能否平均,也就是求能否让两边的差值为0,也就是[/b]
dp[maxPercent]=true;
具体分析见 题目1420:Jobdu
MM分水果
[b]
[/b]
源代码
//============================================================================ // Name : judo1358.cpp // Author : wdy // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //============================================================================ //similarto 1420UDO MM fruits #include <iostream> #include <vector> using namespace std; bool isAr(int n){ std::vector<int> nv; int sum = 0; while(n>0){ sum+=n%10; nv.push_back(n%10); n/=10; } if(sum&1){ return false; } int maxPercent = sum>>1; bool *dp = new bool[maxPercent+1]; for(int i = 1;i<maxPercent+1;i++) dp[i] = false; dp[0] = true; for(std::vector<int>::size_type i = 0;i<nv.size(); i++){ for(int j = maxPercent; j>=nv.at(i); j--) dp[j] = dp[j]||dp[j-nv.at(i)]; } return dp[maxPercent]; } void arNum(int a,int b){ int num = 0; for(int i = a;i<b+1;i++){ if(isAr(i)) num++; } std::cout<<num<<std::endl; } void judo(){ int a; int b; while(std::cin>>a>>b){ arNum(a,b); } } int main() { judo(); return 0; } /************************************************************** Problem: 1358 User: KES Language: C++ Result: Accepted Time:450 ms Memory:6668 kb ****************************************************************/
相关文章推荐
- 九度OJ 1358:陈博的平均主义 (遍历、递归)
- 九度OJ 1358:陈博的平均主义 (遍历、递归)
- 【九度】题目1358:陈博的平均主义
- 九度 1358 陈博的平均主义
- JD 1358:陈博的平均主义 && JD 1420:Jobdu MM分水果(01背包)
- 九度笔记之 1252:回文子串
- 【学习笔记】〖九度OJ〗题目1153:括号匹配问题
- 【学习笔记】〖九度OJ〗题目1443:Tr A
- 九度笔记之 1352:和为S的两个数字
- 九度笔记之 1494:Dota
- 九度笔记之 1499:项目安排 的两种动态规划方法比较
- 九度笔记之 调整数组顺序使奇数位于偶数前面
- 【学习笔记】〖九度OJ〗题目1464:Hello World for U
- 九度笔记之 1350:二叉树的深度
- 九度笔记之 1333:考研海报(25分)
- 九度笔记之 1455:珍惜现在,感恩生活
- [置顶] 九度笔记之 455:珍惜现在,感恩生活
- 九度笔记之 项目安排
- 九度笔记之 1207质因数的个数
- 九度笔记之 1209最小邮票数