codeforces 835C 二維字首和

2021-08-04 19:24:47 字數 595 閱讀 7378

題意:給出一些點的值,查詢在乙個時間點一段區間的值。點的值會隨時間每次增加一,然後取(k + 1)的模。

思路:以為k是<=10,所以可以把每個時刻每一段的字首和弄出來,然後查詢的時候就行。

ps:乙個點不只是乙個值,在這個地方被卡。二維字首和的構造和維護可以複習一下。

#includeusing namespace std;

typedef pairp;

const int maxn = 100000 + 10;

typedef long long ll;

#define inf 0x3f3f3f3f

int a[12][maxn];

p b[maxn];

int sum[12][110][110];

int maze[12][110][110];

int main()

for(int i = 0; i <= k; i ++)

}for(int ks = 0;ks <= k; ks ++)}}

for(int i = 1; i <= m; i ++)

}return 0;

}

CodeForces 1169C(二分 思維)

codeforces 1169c 1 思路 每次可以選取任意幾個數字進行 ai 1 m的操作,所以最多m次讓序列變為非遞減序列。讓所有的元素值保持盡可能的小,能使最終的運算元最小。所以可以二分查詢需要進行修改的次數tim。2 include include include includeusing ...

codeforces1169C 二分答案 思維

1700的題,然而比賽的時候沒有做出來。題意 給你乙個n表示序列長度為n,還有乙個m表示這個序列的最大值小於m 然後對這個陣列進行多次操作,一次操作為 對ai,aj,ap,等k個數進行 1且對m取模,最後讓這個序列變成乙個不遞減的序列,可以證明通過x次操作你是一定可以使這個陣列符合條件,現在的問題是...

Codeforces 1156C 尺取法 二分

題意 給你乙個陣列,問裡面最多能匹配出多少對,滿足abs a i a j k 思路 首先肯定要排序。思路1 尺取法 看了dreamoon的 明白的。我們可以尋找乙個最長的段,這段的最大值和最小值的差小於k,假設陣列長度是n,那麼答案是min n 2,n mx 為什麼呢?如果mx大於n 2,容易發現我...