水問題のCodeforces 939Aの問題

トピックリンク:http://codeforces.com/problemset/problem/939/A

A.ラブトライアングル
テストあたりの時間制限
1秒
テストごとのメモリ制限
256メガバイト
入力
標準入力
出力
標準出力

あなたが知っている可能性としては何の男性面でも女性のプレーンはありません。しかし、地球上の各プレーンは、他のいくつかの飛行機が好き。ある  N  から番号地球上の平面、  Nは、その数を有する平面は  iが  数と平面を好き  、F 、I、ここで  1≤  F I  ≤  N  と  F I  ≠  I

私たちは愛の三角形平面いる状況呼び出す  Aは  平面好き  Bを平面、  Bは  平面好き  C  と平面  Cは  平面好き  Aを地球上のすべての愛の三角形があるかどうかを確認します。

入力

最初の行は、単一の整数含ま  N  (2≤  N  プレーンの数- ≤5000)。

2行目は含ま  nは  整数  F 1、  F 2、···、  F N  (1≤  F I  ≤  N、  fはI  ≠  Iつまり、)  I番目の面が好きは、  fはiは番目。

出力

出力« YES»地球上の平面からなる三角がある場合。それ以外の場合は、出力« NO»。

あなたは、出力小文字または大文字で任意の文字をすることができます。

入力
コピー
5 
2 4 1 3
出力
コピー
はい
入力
コピー
5 
5 5 5 5 1
出力
コピー
番号
注意

最初の例では平面  2は、平面好き  4を、面  4が平面好き  1、プレーン  1は、平面好き  2、それは愛の三角形です。

2番目の例では何の三角関係はありません。

アイデア:トピック番号1の効果は、それを表現する方法、1番3号等のように2番、2番3号のようなものですか?添字アレイを表現すると、例えば、1番2番のような[1] = 2、2 3号、同様に表し号、[2] = 3と同じトークンAを表す[3] = 1、のような数を表し、3 1。今、困難が3との間の関係を表現する方法です。ACコードを参照してください。

#include <iostreamの>
 使用して 名前空間STD;
 INT N-、A [ 5001 ]; 

int型のmain()
{ 
    一方(CIN >> N-)
    { 
        int型フラグ=で0 ; // 設定されたフラグ
        のためのINT I = 1 ; I <= N-; I ++ 
            CIN >> [I]、
         のためにINT I = 1 ; I <= N; I ++ IF([[[I]]] == I)// 直ちに長い条件としてループの外に、すぐに終了 
                フラグ= 1; 
        もし(フラグ== 1 
            COUT << " YES " << ENDL。
        他の
            裁判所未満 << " NO " << てendl; 
    } 
    戻り 0 
}

三角満たす条件の基である[1] = 2、[2] = 3、[3] = 1、、我々が分析するこの例を取ります。[1]第2のような= 2説明第1、我々はすぐにそのような第2が誰であるかを判断する、我々は、第2のような人を知りたい[1] = 2(第1お気に入りの第2)を入れた第2の配列aへ、すなわち、[1]、[1] = 2、[1]と同じような番号2で表される、[2]と等価です[[[1]]](番号のような、である3である配列aへ気に入りましたか?次に[[1]] 3を表す方法のLi、[2] = 3、誰が、彼らは3番1をしたいと思い、そうであれば、愛の三角形の三つの条件を満たすように、それ以外の場合は満足していない、裁判官に続けるかどうかを判断するために、)です。十分な理解の下で理解することは、難しいことではないの後。

おすすめ

転載: www.cnblogs.com/biaobiao88/p/11846203.html