Nbutの1566アナログ形式アレイ間隔カバレッジ問題

コンピュータデータの--TT大きな開発者は1からNまでの番号Nの部分を有し、彼の能力の嫉妬QAQの同僚は、フォーマットさにTT TTのコンピュータのデータを利用するための時間ではありません!(FML QAQは実際にはあまりにもコンピュータT ^ Tをフォーマットすることができますどのようにそのような人を、期待していなかった!それを奪うべきええ、私は確かに、そのようなフライド日ああ~~ OJ新しいソースコードを切るなど、貴重な資源がたくさんありますよああ)
入力
テストデータの複数のセット、それぞれの第一の入力Nの整数正(4 <= N <= 50,000)。次の行は、(4 <= Q <= Q整数正含ま 50,000)は、 操作のQAQ番号を表していました。次Q線、二つの数、xとyを含む各行(1 <= X <= Y <= N)は、 QAQは、フォーマットされたデータに対してyに数xを表します。
出力
各操作QAQについては、フォーマットされていませんどのくらいのデータ出力QAQこの操作、。
(T ^ T:ああ私を残し)
SampleInput
100
。5
。3 10
2 7
16 20れている
。1 99
54 78である
SampleOutput
92
91である
86
。1
。1

この問題を見て分かりやすい質問の意味は、セグメントツリー更新間隔+範囲クエリであってもよいが、次のブログレコードように、コードを書くために妖精の先輩を見るべき
最初のコードに

#include <iostream>
#include <cstring>

using namespace std;

int a[50005];

int main()
{
    int n;
    ios::sync_with_stdio(false);

    while(cin >> n)
    {
        memset(a,0,sizeof(a));
        
        int q;

        int l,r;

        cin >> q;

        while(q--)
        {
            cin >> l >>  r;

            for(int i = l ; i <= r ;i++)
            {
                if(a[i]>=r)
                    break;

                if(!a[i])
                    n--;

                a[i] = r;
            }

            cout << n << endl;
        }
    }

    return 0;
}

サンプルは、アレイ間隔値以内に37 7へ入力3は、したがって、0~7 N減算されたシミュレーションにより知ることができる最も重要な点は、区間の境界の値がセクションになる割り当てられたときに、さらに入力210場合[2]したがって、0又は1の値が、nの値以下[3]の値がサイクルなどの終わりにを横断した本の一部となっている右の境界の最後のクエリで更新されています

公開された54元の記事 ウォンの賞賛0 ビュー1210

おすすめ

転載: blog.csdn.net/weixin_44144278/article/details/103025321