CodeForces 484B Maximum Value
題意:
a序列有n(2*10^5)個數字 問在a[i]>=a[j]的情況下 a[i]%a[j]的最大值是多少
思路:
感覺是一道挺亂來的題……
我們可以將ans表示為a[i]-k*a[j] 這樣我們枚舉k只要知道比k*a[j]大但是不到(k+1)*a[j]的值就好了 考慮到a[i]只要10^6大 因此可以用一個last數組記錄小於等於i的數組中的數字 因此只要拿出last[(k+1)*a[j]-1]就好
暴力可能會T有一些可以讓程序加速的方法 輸入開掛 a數字去重 從大到小枚舉a[i]當ans>=a[i]時候可以break
代碼:
#include
#include
#include
#include
#include
#include