Codeforcesラウンド#616(本部1)

マインドコントロール

トピックリンク:https://codeforces.com/contest/1290/problem/A

質問の意味:

  n個のアイテムの合計、各項目は、独自の値を有します。

  N個人の既存の、誰もが離れてスクラッチ尾からランダムまたは順次にすることができ贈り物

  Mあなたが最初の場所に来て、あなたは、彼らは贈り物の個人的な制御Xヘッドやテールを取るように指定することができます

  あなたは少なくとも、どのくらいの価値のアイテムを尋ねる得ることができます

分析:

  私たちは、あなたが唯一の元M-1の個人的な影響によってギフトの価値を得ることができるので、Kは=、それは分(X、M-1)であることを確認してください

  この時点で、Kの個人によるあなたの前にあなたは、Mを制御することができます - 1 - 1 - - Kの個人があなたのコントロールの外ではありません、我々はMを作るK = C

  私たちは、<0を聞かせて= I <= K、 0 <= J <= Cは、私はあなたが最初から制御できることを意味し、あなたは彼が人々の賜物てみましょう

  あなたは贈り物の数を制御し、最初から彼を連れて行った、とすることができないというjの手段その後、尾の番号からの贈り物を取ったがある+(C - (I K) - J)

  [ - (K - I) - N(Cjの)]だから、あなたは贈り物の休息を取る際に頭をオンにすると、[I + J + 1]、への贈り物として、尾の残りの賜物です

  私たちは暴力N ^ 2人の友人を列挙することができるようにデータは、比較的小さな範囲の対象であるため、

  最小を列挙しながら、jの数を制御することはできませんので、我々は列挙全てのjを取らなければならないので、私たちは、注意を払う必要があります

  番号は、私たちがコントロールできるということですので、我々は中に全てのi列挙の最大値を取る必要がありますが

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
#defineっ長い長
 のconst  int型 N = 2E5 + 10 
LL [N]、ANS。
INT のmain()
{ 
    int型、T、N、M、K、C、X。
    cinを >> トン。
    一方、(T - 
    { 
        CIN >> N >> M >> X。
        以下のためにINT iが= 1 ; I <= N; I ++)CIN >> [I]。
        K =分(X、M - 1)、C = M - 1 - K、ANS = 0;
        以下のためにINT iが= 0 ; I <= K; I ++ 
        { 
            LL今 = (0x3f3f3f3f3f3fll)。
            INT J = 0 ; J <= C; J ++  =分(ここで、MAX([I + J + 1 ]、[N - (K - I) - (C - J)]) ); 
            ANS = MAX(今ANS、); 
        } 
        COUT << ANS << ' \ n ' 
    } 
    戻り 0 
}

 

既約アナグラム

トピックリンク:https://codeforces.com/contest/1290/problem/B

質問の意味: 

  アナグラムを定義して、2つの文字は、同じ文字列を参照してください。

  還元性定義アナグラムは、2つの文字列がk個のサブストリングに分割することができ表し、各サブストリングはアナグラムです。

  基準を満たさない既約アナグラム。

  あなたは、文字列を与えられ、その後、それぞれの時間はあなたのL、Rを求め、q倍を依頼しています。この文字列の[L、R]をあなたを掲載し、既約アナグラムを見つけることができます。

分析:

  アイテムの難易度の難しさ

  以下は真の既約アナグラムであるとき、見つけることは難しいことではありません

  ①、1の文字列

  ②、最初の文字列は同じではありません

  ③、三つ以上の異なる文字列があります

  ①②直接決意動作O1は、各文字の数をカウント接頭辞の前処理操作③、各問い合わせは再びそれを横断します

 

#include <ビット/ STDC ++ H>
 の#define担当者(I、N)のための(iは= INT; I <= N; I ++)
 使用して 名前空間STDを、
CONST  INT N = 3E5 + 10 INT CNT [N] [ 37 ]、N、L、R。
文字列sの。
int型のmain()
{ 
    CIN >> S。
    担当者(I、1 、s.size())
    { 
        担当者(j、025 
        CNT [I] [J] = CNT [I - 1 ] [J]。
        CNT [i]は[S [I - 1 ] - ' '] ++ ; 
    } 
    CIN >> N。
    一方、(N - 
    { 
        CIN >> L >> R。
        もし(L == R){COUT << " はい" << ' \ n ' ; 引き続き;}
         場合(S [1 - 1 ] = S [R! - 1 ]){COUT << " はい" << ' \ n ' ; 引き続き;}
         int型 TOT = 0 
        担当者(J、25 であれば(CNT [R] [J] - CNT [1 - 1 ] [J])
        TOT ++ もし(TOT> = 3)COUT << " はい" << ' \ n ' ;
        他の           裁判所未満<< " ノー" << ' \ n個' ; 
    } 
    戻り 0 
}

 

概要:最初の戦いのDIV1、T ^ Tの下部には、はるかに優れ指摘します

おすすめ

転載: www.cnblogs.com/StarRoadTang/p/12258181.html