acd,acd破解版

來源:互聯網
上載者:User

acd,acd破解版

題意:一個由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

——>>第一個首碼 j 不滿足,那麼後面的首碼一定不滿足(因為首碼 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 = -1;    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\n", i - 1);}int main(){    while (scanf("%d%d", &n, &k) == 2)    {        Read();        Build(1, 1, Max);        Solve();    }    return 0;}



ACDSee是個什軟體?

軟體名稱:ACDsee 7 簡體中文化版
大小:24M
軟體介紹:
ACDSee 是目前最流行的數字圖象處理軟體,它能廣泛應用於圖片的擷取、管理、瀏覽、最佳化甚至和他人的分享!使用 ACDSee,你可以從數位相機和掃描器高效擷取圖片,並進行便捷的尋找、組織和預覽。超過 50 種常用多媒體格式被一網打盡!作為最重量級看圖軟體,它能快速、高品質顯示您的圖片,再配以內建的音頻播放器,我們就可以享用它播放出來的精彩投影片了。Acdsee 還能處理如 Mpeg 之類常用的視頻檔案。此外 ACDSee 是您最得心應手的圖片編輯工具,輕鬆處理數位影像,擁有的功能像去除紅眼、剪下映像、銳利化、浮雕特效、曝光調整、旋轉、鏡像等等,還能進行批量處理哦!
橡樹下載:www1.xiangshu.com/download/software/33.ra
 
ACDSee是個什軟體?

軟體名稱:ACDsee 7 簡體中文化版
大小:24M
軟體介紹:
ACDSee 是目前最流行的數字圖象處理軟體,它能廣泛應用於圖片的擷取、管理、瀏覽、最佳化甚至和他人的分享!使用 ACDSee,你可以從數位相機和掃描器高效擷取圖片,並進行便捷的尋找、組織和預覽。超過 50 種常用多媒體格式被一網打盡!作為最重量級看圖軟體,它能快速、高品質顯示您的圖片,再配以內建的音頻播放器,我們就可以享用它播放出來的精彩投影片了。Acdsee 還能處理如 Mpeg 之類常用的視頻檔案。此外 ACDSee 是您最得心應手的圖片編輯工具,輕鬆處理數位影像,擁有的功能像去除紅眼、剪下映像、銳利化、浮雕特效、曝光調整、旋轉、鏡像等等,還能進行批量處理哦!
橡樹下載:www1.xiangshu.com/download/software/33.ra
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.