首页 > 代码库 > hdu 5878 I Count Two Three (2016 ACM/ICPC Asia Regional Qingdao Online 1001)
hdu 5878 I Count Two Three (2016 ACM/ICPC Asia Regional Qingdao Online 1001)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5878
题目大意:
给出一个数n ,求一个数X, X>=n. X 满足一个条件 X= 2^a*3^b*5^c*7^d 求靠近n的X值。
解题思路:
打表+二分查找
【切记用 cin cout,都是泪。。。】
AC Code:
1 #include<bits/stdc++.h> 2 using namespace std; 3 long long na[100002]; 4 5 int main() 6 { 7 int s=0; 8 long long ans,n,x; 9 for(int i=0; i<=31; i++)10 for(int j=0; j<=19; j++)11 for(int k=0; k<=12; k++)12 for(int z=0; z<=11; z++)13 if( (ans=pow(2,i)*pow(3,j)*pow(5,k)*pow(7,z))>=1e9+1 )break;14 else na[s++]=ans;15 sort(na,na+s);16 while(~scanf("%lld",&n))17 {18 while(n--)19 {20 scanf("%lld",&x);21 printf("%lld\n",*lower_bound(na,na+s,x));22 }23 }24 return 0;25 }
hdu 5878 I Count Two Three (2016 ACM/ICPC Asia Regional Qingdao Online 1001)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。