您的位置:首页 > 其它

HDU 5878 I Count Two Three .

2016-09-22 13:10 369 查看
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5878

事先打表就好了

920 MS

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long LL;
#define min4(a,b,c,d) min(min(a,b),min(c,d))
int Num[5900],p;
void init()
{
int p2,p3,p5,p7;
p2=p3=p5=p7=0;
Num[0]=1;
while(Num[p]<=1e9){
Num[++p]=min4(2*Num[p2],3*Num[p3],5*Num[p5],7*Num[p7]);
if(Num[p]==2*Num[p2]) p2++;
if(Num[p]==3*Num[p3]) p3++;
if(Num[p]==5*Num[p5]) p5++;
if(Num[p]==7*Num[p7]) p7++;
}
}
int main()
{

init();
int T,n; scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
cout<<*lower_bound(Num,Num+p+1,n)<<endl;;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: