CodeForces 484B 求最大餘數

2021-07-04 19:11:48 字數 1075 閱讀 4181

description

you are given a sequence a

consisting ofn

integers. find the maximum possible value of

i divided bya

j), where1 ≤ i, j ≤ n

and a

i ≥ aj.

input

the first line contains integer n

— the length of the sequence (1 ≤ n ≤ 2·105

).the second line contains n

space-separated integersa

i (1 ≤ a

i ≤ 106).

output

print the answer to the problem.

sample input

input

3

3 4 5

output

2
對於x

來說,在

k*x+1~(k+1)*x

這段範圍內,餘數最大的肯定是最接近

(k+1)*x

的數,可以

o(n)

預處理出來距每個數最接近的那個數。然後通過列舉倍數的方法去遍歷所有的

k,這裡複雜度約為

o(n*logn)。

#include#include#include#define inf 0x3f3f3f3f

using namespace std;

int hash[2000010];

int dp[2000010];

int main()

for(int i=min;i<=2*max+1;i++) //列舉出 所有的最靠近i的點 的大小

int mmax=-1;

for(int i=min;i<=max;i++)

}} printf("%d\n",mmax);

}}

CODEFORCES 535B 解題報告

仍然是水題,但是還是有可以說的地方。主要思路就是dfs可重排列。4,7組成的幸運數字,在n位數字的構造方式有2 n種,而資料是最多9位,則列舉只有512種,n 2的複雜度足矣。只列舉相應位數的4 7排列,前面的個數用2 n累加。只要遵循先選4再選7即可構造字典順序,然後查詢相應數。以下是 可直接ac...

CodeForces 816B(區間計數)

codeforces 816b 題意 給出n個區間和乙個k值,再給出q次詢問,每次詢問給出乙個區間,要求這個區間中的數在開始的n區間中出現次數不少於k次的數目。解法 將n個區間的每個數每出現一次就加一,最後統計q詢問的區間中不小於k的數的個數。寫這題主要是想講乙個常用的區間更新的方法,其實這題也可以...

Codeforces 965B 題解報告

當k 1時,取第乙個 的座標即可 當k 1時,需要求出每乙個點在上下左右四個方向所能到達的最遠處,記為up,down,left,right,再取上下方向和左右方向的和的最大值,即 max 0,up down k max 0,left right k n,k map int,input split a...