#include<iostream>
#include<vector>
#include<algorithm>
//杭电OJ没有g++的优化,cin/cout输入输出速度极慢,改成scanf printf就直接AC了
using namespace std;
int main(){
const int N = 1e9 + 1;
int k;
vector<int> v;
for(int i = 1;i<N;i*=2){
v.push_back(i);
}
k = v.size();
for(int i = 0;i<k;i++){
for(int j = v[i];j<=N/3;){
j*=3;
v.push_back(j);
}
}
k = v.size();
for(int i = 0;i<k;i++){
for(int j = v[i];j<=N/5;){
j*=5;
v.push_back(j);
}
}
k = v.size();
for(int i = 0;i<k;i++){
for(int j = v[i];j<=N/7;){
j*=7;
v.push_back(j);
}
}
k = v.size();
sort(v.begin(),v.end());
int n;
cin>>n;
int t;
for(int i = 0;i<n;i++){
scanf("%d",&t);
printf("%d\n",*lower_bound(v.begin(),v.end(),t));
}
}
2016 ACM/ICPC 青岛赛区网络赛 I Count Two Three
C++程序生成特定数列
最新推荐文章于 2020-12-10 19:08:57 发布
本文介绍了一个C++程序,该程序通过多重循环生成一个包含特定数值的数列,并使用标准模板库(vector)来存储数据。为了提高效率,程序采用scanf与printf进行输入输出操作。最后,程序通过sort函数对数列进行排序,并使用lower_bound查找最接近输入值的数。

1648

被折叠的 条评论
为什么被折叠?



