hdu_5878_I Count Two Three(预处理)
生活随笔
收集整理的這篇文章主要介紹了
hdu_5878_I Count Two Three(预处理)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:hdu_5878_I Count Two Three
題意:
給你一個n,讓你找滿足那個式子的不比n小的最小數
題解:
先上個預處理,然后二分查找就行
1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;i++) 3 using namespace std; 4 typedef long long ll; 5 ll dt[100000],ed; 6 7 ll pow_(ll a,ll k) 8 { 9 ll an=1; 10 while(k){if(k&1)an*=a;k>>=1,a*=a;} 11 return an; 12 } 13 14 int main() 15 { 16 ll a,b,c,d; 17 F(i,0,40) 18 { 19 a=pow_(2,i); 20 if(a>1e9)continue; 21 F(j,0,40) 22 { 23 b=pow_(3,j); 24 if(b>1e9||a*b>1e9)continue; 25 F(k,0,40) 26 { 27 c=pow_(5,k); 28 if(c>1e9||a*b*c>1e9)continue; 29 F(l,0,40) 30 { 31 d=pow_(7,l); 32 if(d>1e9||a*b*c*d>1e9)continue; 33 dt[++ed]=a*b*c*d; 34 } 35 } 36 } 37 } 38 sort(dt+1,dt+1+ed); 39 int t,n; 40 scanf("%d",&t); 41 while(t--)scanf("%d",&n),printf("%lld\n",dt[lower_bound(dt+1,dt+1+ed,n)-dt]); 42 return 0; 43 } View Code?
轉載于:https://www.cnblogs.com/bin-gege/p/5890022.html
總結
以上是生活随笔為你收集整理的hdu_5878_I Count Two Three(预处理)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ajax 分页
- 下一篇: 实训七(项目准备与创建)