1010 只包含因子2 3 5的數
基準時間限制:1 秒 空間限制:131072 kb 分值: 10
難度:2級演算法題
k的因子中只包含2 3 5。滿足條件的前10個數是:2,3,4,5,6,8,9,10,12,15。
所有這樣的k組成了乙個序列s,現在給出乙個數n,求s中 >= 給定數的最小的數。
例如:n = 13,s中 >= 13的最小的數是15,所以輸出15。
input
第1行:乙個數t,表示後面用作輸入測試的數的數量。(1 <= t <= 10000)output第2 - t + 1行:每行1個數n(1 <= n <= 10^18)
共t行,每行1個數,輸出》= n的最小的只包含因子2 3 5的數。input示例
518output示例1335
77
28153680
李陶冶(題目提供者)
題解: 將1e18+999範圍內所有符合題意的數提前處理出來,這裡要超過1e18的,因為題中說了n會等於1e18的。好像大概1萬個吧,然後排序一下,對於給定的乙個數,就是二分找符合條件的最小值問題了,經典二分。
蠢了,竟然不會預處理了(其實主要是一直以為打表會打不下。。)
**:
#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;
typedef long long ll;
const int maxn = 1e6+5;
const int mod = 1e9+7;
const int hash = 10000;
const int inf = 1<<30;
const ll llinf = 1e18+999;
ll n;
ll ans[maxn];
int cnt;
//預處理
void init( )
int main( )
cout<}}
1010 只包含因子2 3 5的數
k的因子中只包含2 3 5。滿足條件的前10個數是 2,3,4,5,6,8,9,10,12,15。所有這樣的k組成了乙個序列s,現在給出乙個數n,求s中 給定數的最小的數。例如 n 13,s中 13的最小的數是15,所以輸出15。input 第1行 乙個數t,表示後面用作輸入測試的數的數量。1 t ...
只包含因子2 3 5的數
k的因子中只包含2 3 5。滿足條件的前10個數是 2,3,4,5,6,8,9,10,12,15。所有這樣的k組成了乙個序列s,現在給出乙個數n,求s中 給定數的最小的數。例如 n 13,s中 13的最小的數是15,所以輸出15。input 第1行 乙個數t,表示後面用作輸入測試的數的數量。1 t ...
51Nod 1010 只包含因子2 3 5的數
k的因子中只包含2 3 5。滿足條件的前10個數是 2,3,4,5,6,8,9,10,12,15。所有這樣的k組成了乙個序列s,現在給出乙個數n,求s中 給定數的最小的數。例如 n 13,s中 13的最小的數是15,所以輸出15。input 第1行 乙個數t,表示後面用作輸入測試的數的數量。1 t ...