SPOJ DQUERY 區間數字統計

2022-05-20 20:03:26 字數 747 閱讀 9556

【鏈結】

我是鏈結,點我呀:)

【題意】

題意【題解】

因為區間的端點移動乙個單位的話,只會涉及到乙個元素的增多或減少。

因此可以用莫隊演算法來解決。

只需要開乙個陣列(大小1百萬),用下標來快速檢索元素的個數即可。

【**】

#include #define ll long long

using namespace std;

struct abc;

const int n = 30000;

const int q = 200000;

int cnt[1000000+10];

abc query[q+10];

int n,q,a[n+10];

int ans[q+10],cur = 0;

bool cmp(abc a,abc b)

sort(query+1,query+1+q,cmp);

int nowl = query[1].l,nowr = query[1].r;

for (int i = nowl;i<=nowr;i++)

}for (int i = 1;i <= q;i++)

while (nowrquery[i].r)

ans[query[i].id] = cur;

}for (int i = 1;i <= q;i++)

return 0;

}

數字統計 區間數字

time limit 1 sec memory limit 128 mb submit 8 solved 3 submit status web board 一本書的頁碼從自然數1 開始順序編碼直到自然數n。書的頁碼按照通常的習慣編排,每個頁碼都不含多餘的前導數字0。例如,第6 頁用數字6 表示,而...

SPOJ DQUERY 區間種類查詢

離線做法 列舉右端點r,右端點固定時,記錄最右邊第一次出現的數字為1,比如1 2 1 2 3,0 0 1 1 1 給定l,那麼l r區間數字種類的結果是 sum r sum l 1 把詢問按r從小到大排序,我們r 1時,維護的陣列只改變r 1為1,和r 1的數之前出現的位置變為0即可。kx incl...

連號區間數

小明這些天一直在思考這樣乙個奇怪而有趣的問題 在1 n的某個全排列中有多少個連號區間呢?這裡所說的連號區間的定義是 如果區間 l,r 裡的所有元素 即此排列的第l個到第r個元素 遞增排序後能得到乙個長度為r l 1的 連續 數列,則稱這個區間連號區間。當n很小的時候,小明可以很快地算出答案,但是當n...