B.ペア

リンク:https://codeforces.com/contest/1169/problem/B

質問の意味:

ヒキガエルイワンが有する  m個の整数のm個の対を、各整数の間にある  1 1及び  N、N、包括。対である  1 B 1 2 B 2 ... M BのM (A1、B1)、(A2、B2)、···、(AM、BM)。

二つの整数が存在する場合、彼は確認するように求められ  、Xの Xと  Yの Y(1 X < Y N 1≤x<y≤n)各所与の対における少なくとも一つの整数に等しくなるように  、X、Xまたは  Y Y。

アイデア:

検討二つの別々の、例えば、(1,2)と完全に同一 - このペア、xおよびyは、2つのペアを取ることができるとき(3,4)、となるように第1のベクトルのレコードに登場チーム、チームは、チームがすべてをカバーしていることを示す、見つからない場合はありません、それは問題ではない見つけるように見えました。

これらの値の4つまで、次に列挙、見つけるために一つずつ。

しかし、他の人は、それが私には思われる考えは同じではありません

コード:

#include <ビット/ STDC ++ H> 

名前空間STDを使用して、

typedefの長い長いLL。
const int型MAXN = 3E5 + 10。
const int型MOD = 1E9 + 7。
対<整数、整数>ノード[MAXN]。
int型ディス[MAXN]。
N INT、M、K、T。
int型のP、Q、U、V; 
INT X、Y、Z、W。

BOOL SERCH(INT A、INT B)
{ 
    ための(I = 1をint型; I <= M; iが++)
    { 
        !IF(ノード[i]が1次回= &&ノード[i]が1次回= B &&ノード[I !!] .second = &&ノード[i]は.second = b)は
            falseを返します。
    } 
    trueを返します。
} 

int型のmain()
{ 
    CIN >> N >> M。
    ベクトル<整数> SER。
    ブールフラグ= TRUE。
    { 
        CIN >>ノード[i]が1次回>>ノード[i]は.second。
        / * 
        ディス[ノード[i]が1次回] ++; 
        IF((DIS [ノード[i]が1次回] == 1つの&&フラグ))
        { 
            ser.push_back(ノード[i]が1次回)。
            IF(ser.size()== 4)
                フラグ= FALSE。
        } 
        ディス[ノード[i]は.second] ++; 
        IF((DIS [ノード[i]は.second] == 1 &&フラグ))
        { 
            ser.push_back(ノード[I] .second)。
            IF(ser.size()== 4)
                フラグ= FALSE。
        } 
        * / 
        IF(ser.size()<4)
        { 
            BOOLのF = TRUE。
            (INT J = 0; J <ser.size(); J ++)のための
                (ノード[i]が1次回== SER [J])であれば
                    偽F =。
            (INT J = 0; J <ser.size(); J ++)のための
                (ノード[I] .second == SER [J])であれば
                    偽F =。
            IF(F)
                ser.push_back(ノード[i]が1次回)、ser.push_back(ノード[I] .second)。
        } 
    } 
    フラグ= FALSE。
// COUT << SERCH(2、4)<< ENDL。
//(自動X:SER)のために
// coutの<< X << ''; 
// coutの<<てendl; 
    (; iがser.sizeを()<I ++はiが0 = INT)のための
        (int型J = I + 1、J <ser.size(); J ++)のために 
            (SERCH(IF SER [i]は、
                フラグ= TRUE。
    IF(フラグ)
        COUT << "YES" << ENDL。
    他の
        裁判所未満<< "NO" <<てendl; 


    0を返します。
}

  

おすすめ

転載: www.cnblogs.com/YDDDD/p/10930203.html