【HDU 5878】I Count Two Three(预处理+二分)
2016-09-19 16:53
381 查看
【HDU 5878】I Count Two Three(预处理+二分)
题目大意:
定义”I Count Two Three Number”为:2a3b5c7d
问≥n的最小的”I Count Two Three Number”
打个表可以发现这种数不多,dfs预存下来所有的2a3b5c7d
对于每个n二分出答案即可。
代码如下:
题目大意:
定义”I Count Two Three Number”为:2a3b5c7d
问≥n的最小的”I Count Two Three Number”
打个表可以发现这种数不多,dfs预存下来所有的2a3b5c7d
对于每个n二分出答案即可。
代码如下:
#include <iostream> #include <cmath> #include <vector> #include <cstdlib> #include <cstdio> #include <climits> #include <ctime> #include <cstring> #include <queue> #include <stack> #include <list> #include <algorithm> #include <map> #include <set> #define LL long long #define Pr pair<int,int> #define fread(ch) freopen(ch,"r",stdin) #define fwrite(ch) freopen(ch,"w",stdout) using namespace std; const int INF = 0x3f3f3f3f; const int msz = 10000; const int mod = 1e9; const double eps = 1e-8; int bas[] = {2,3,5,7}; int num[23333]; int tp; void init(int pos,LL v) { if(pos == 4) { num[tp++] = v; return; } while(v <= mod) { init(pos+1,v); v *= bas[pos]; } } int main() { //fread(""); //fwrite(""); tp = 0; init(0,1); sort(num,num+tp); int t,n; scanf("%d",&t); while(t--) { scanf("%d",&n); printf("%d\n",*lower_bound(num,num+tp,n)); } return 0; }
相关文章推荐
- HTML2DOC html转word
- CAS架构及原理
- Linux 常用命令
- 一天学习一个python库之os
- mysql或者access中对时间的查询操作
- ORACLE PACKAGE 包
- Strut2之ongl表达式
- 对象(实例)的产生和使用:
- apache中配置php支持模块模式、cgi模式和fastcgi模式
- 车辆保养记录查询
- Solr4.0 如何配置使用UUID自动生成id值
- SEO误区—害怕导出链接到其他网站
- HproseUtils HPROSE java 调用别人接口的工具类 解决调用https接口问题
- java 8 Lambda排序
- (listview局部更新)在activity中获取listview的item子项view
- javascript深入理解js闭包
- html中img显示图片的两种常用方式
- Gradle 实现 Android 多渠道定制化打包
- Spring定时任务的几种实现 spring框架 quartz spring spring-task 定时任务 注解
- 迅为-iMX6开发板 飞思卡尔iMX6Q开发板 工业级开发板