XDOJ1185 - 钟爱的数字
来源:互联网 发布:预算编制软件 编辑:程序博客网 时间:2024/06/09 16:41
Description
LL最喜欢的数字是2 3 8,现在他想知道,从a到b中间,有多少个数字只包含2,3,8
Input
有多组输入数据,第一行为一个数字case,代表有多少组输入数据 (case<=20)
以下case行每行包含两个正整数a,b代表如题意所述的区间 (1<=a<=b<=10^8)
以下case行每行包含两个正整数a,b代表如题意所述的区间 (1<=a<=b<=10^8)
Output
一共case行,每行一个整数对应该组区间内包含多少个期望的数字
Sample Input
2
2 3
2 11
2 3
2 11
Sample Output
2
3
3
解题思路:
由于数字只能由2、3、8组成,所以可以找出小于10^8的所有的合格要求的数,可以用BFS或DFS找到符合要求的数,并把它们存储起来。保证从小到大的顺序,然后找到大于等于a的第一个数所有索引,再找到大于b的第一个数所在的索引,最后求得这两个索引的差,即为结果。
#include<iostream>#include<vector>#include<deque>#include<algorithm>using namespace std;const int D = 8;vector<int> number;deque<int> Q;void init(){ Q.push_back(2); Q.push_back(3); Q.push_back(8);}void BFS(){ int depth = 0; int n = 0; int m = 3; int fact = 10; while(!Q.empty()) { int t = Q.front(); Q.pop_front(); ++n; if(n%m==0) { ++depth; m = 3*m; n = 0; if(depth==D) { number.push_back(t); break; } } number.push_back(t); Q.push_back(2+fact*t); Q.push_back(3+fact*t); Q.push_back(8+fact*t); }}int main(){ int caseN; cin>>caseN; init(); BFS(); for(int m=0;m<caseN;++m) { int a,b; cin>>a>>b; vector<int>::iterator itera = find_if(number.begin(),number.end(),bind2nd(greater_equal<int>(),a)); vector<int>::iterator iterb = find_if(number.begin(),number.end(),bind2nd(greater<int>(),b)); cout<<iterb-itera<<endl; } return 0;}
0 0
- XDOJ1185 - 钟爱的数字
- 我的钟爱---PLC
- 什么是我所钟爱的?
- show一下我所钟爱的Eclipse
- 我钟爱的喜乐蒂牧羊
- 员工最钟爱的五种福利
- 我所钟爱的 HTML5 资源
- 我所钟爱的 HTML5 资源
- 让钟爱的网站变成Chrome应用
- o.boj 1022 SuperRock钟爱的香蕉
- 端午拼图记:我钟爱的香港电影
- 钟爱濂溪笔下青莲的“出淤泥而不染
- 乔布斯斯坦福演讲---找到你的钟爱
- 科技公司钟爱的50款开源工具
- 我钟爱的数据结构大复习
- 我钟爱的教育技术专业
- 乔布斯说:你必须要找到你所钟爱的东西
- 转:你必须找到你所钟爱的东西
- [C/C++]_[操作符重载operator type()和operator()的区别]
- RMI原理及实现
- Openfire插件
- 开发SDK时需要注意的问题
- iOS 6 新特新CollectionView的使用实现九宫格
- XDOJ1185 - 钟爱的数字
- MVC中“The model backing the '***Context' context has changed since the database was created. ”的问题处理
- Java深入学习(2)——参数传递
- Socket(Tcp)通信服务端
- EBS 学习笔记 wsh_delivery_details_pub.detail_to_delivery 使用
- mysql导入数据时一个insert过大导致Mysql server has gone way,解决办法
- 程序员浮躁,是谁的错?
- 纯css制作圆角的步骤总结
- Linux系统编程之时间函数