日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > acd - 1427 - Nice Sequence(線段樹)

acd - 1427 - Nice Sequence(線段樹)

來源:程序員人生   發布時間:2014-11-13 08:42:01 閱讀次數:3125次

題意:1個由n個數組成的序列(序列元素的范圍是[0, n]),求最長前綴 j ,使得在這個前綴 j 中對任意的數 i1 < i2,都滿足任意的 m <= j,i1 在前 m 個數里出現的次數 >= i2 在前 m 個數里出現的次數 - k (1 ≤ n ≤ 200 000, 0 ≤ k ≤ 200 000)。

題目鏈接:http://acdream.info/problem?pid=1427

――>>第1個前綴 j 不滿足,那末后面的前綴1定不滿足(由于前綴 j 不滿足)。。所以,從左往右掃描,每次取所有數字 i 的最少出現次數與當前掃描到的數出現的次數比較看是不是滿足條件便可。。

      所有數字 i 指的是哪些數字呢?是已出現過的數嗎?樣例2說明不是。。是不大于當前出現過的最大整數嗎?WA告知我不是。。而是 <= a[j] 的所有非負整數。。

      所有數字 i 出現次數的最小值,我想到了RMQ和線段樹,最后選了線段樹來保護這個最小值。。

#include <cstdio> #include <cstring> #include <algorithm> #define lc (o << 1) #define rc ((o << 1) | 1) using std::min; using std::max; const int MAXN = 200000 + 10; const int INF = 0x3f3f3f3f; int n, k, Max; int minv[MAXN << 2], cnt[MAXN]; int a[MAXN]; void Read() { Max = ⑴; for (int i = 1; i <= n; ++i) { scanf("%d", a + i); ++a[i]; if (a[i] > Max) { Max = a[i]; } } } void Build(int o, int L, int R) { minv[o] = 0; if (L == R) return; int M = (L + R) >> 1; Build(lc, L, M); Build(rc, M + 1, R); } void Update(int o, int L, int R, int q) { if (L == R) { minv[o] = cnt[q]; return; } int M = (L + R) >> 1; if (q <= M) Update(lc, L, M, q); else Update(rc, M + 1, R, q); minv[o] = min(minv[lc], minv[rc]); } int Query(int o, int L, int R, int ql, int qr) { if (ql <= L && R <= qr) { return minv[o]; } int ret = INF; int M = (L + R) >> 1; if (ql <= M) ret = min(ret, Query(lc, L, M, ql, qr)); if (qr > M) ret= min(ret, Query(rc, M + 1, R, ql, qr)); return ret; } void Solve() { int i; memset(cnt, 0, sizeof(cnt)); for (i = 1; i <= n; ++i) { ++cnt[a[i]]; Update(1, 1, Max, a[i]); if (Query(1, 1, Max, 1, a[i]) < cnt[a[i]] - k) break; } printf("%d ", i - 1); } int main() { while (scanf("%d%d", &n, &k) == 2) { Read(); Build(1, 1, Max); Solve(); } return 0; }


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 精品伦精品一区二区三区视频 | 伊人精品成人久久综合软件 | 在线中文字幕亚洲 | 国产中文字幕一区 | 99精品视频在线观看免费播放 | 精品免费视频一区二区 | 日韩一区二区三区精品 | 99视频这里有精品 | 综合网av | 国产精品亚洲综合 | 国产精品99久久久 | 一区二区精品在线观看 | 99在线看| av片在线免费播放 | 亚洲免费a | 99精品免费观看 | 国外成人在线视频网站 | 色婷婷5月天 | 亚洲专区视频 | 日日夜夜狠狠干 | 精品视频在线播放 | 亚洲老板91色精品久久 | 视频一区欧美 | 91精品国产高清一区二区三区 | 国产污视频在线 | 欧美激情综合五月色丁香小说 | 国产精品美女久久久 | 精品日韩视频 | 久久三级视频 | 五月婷婷激情综合 | 国产精品久久久久国产a级 91看污 | 成人高清视频免费观看 | 亚洲天堂男人天堂 | 国产精品欧美久久 | 国产精品久久久久久久久久久新郎 | 人人草人人干 | 久久久久久人 | 国产精品v欧美精品v日韩精品 | 一区二区三区视频在线播放 | 最近中文字幕mv在线资源 | 91久久精品一区二区二区 |