I Count Two Three
Posted zzctommy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了I Count Two Three相关的知识,希望对你有一定的参考价值。
可以预处理出所有的满足题目并且比1e9小的的数,不会很多。排个序。询问的时候二分查找就好了
#include<bits/stdc++.h>
using namespace std;
#define int long long
int T,x,tot,a[10000007];
const int MAXN=1e9;
void init() {
int p2=1,p3=1,p5=1,p7=1;
for(int i=0;i<=30;++i) {
p3=1;
for(int j=0;j<=30;++j) {
if(p2*p3>MAXN)break;
p5=1;
for(int k=0;k<=30;++k) {
if(p2*p3*p5>MAXN)break;
p7=1;
for(int l=0;l<=30;++l) {
if(p2*p3*p5*p7>MAXN)break;
a[++tot]=p2*p3*p5*p7;
//cout<<a[tot]<<endl;
p7*=7;
}
p5*=5;
}
p3*=3;
}
p2*=2;
if(p2>MAXN)break;
}
sort(a+1,a+tot+1);
}
signed main() {
init();
scanf("%lld",&T);
while(T--) {
scanf("%lld",&x);
printf("%lld
",a[lower_bound(a+1,a+tot+1,x)-a]);
}
return 0;
}
以上是关于I Count Two Three的主要内容,如果未能解决你的问题,请参考以下文章
2016青岛网络赛 I Count Two Three(打表+二分)
hdu5878 I Count Two Three(二分+ 打表)
[HDOJ5878]I Count Two Three(暴力枚举,二分)
2016 ACM/ICPC Asia Regional Qingdao Online 1001 I Count Two Three