1. 程式人生 > >D >A->B->C-

D >A->B->C-

題目描述

一天小A在金色的銀杏樹下向他喜歡的小姐姐B表白了,“對不起,我喜歡的是C”,B這樣說道,小A尷尬的笑了笑轉身離開了。他心裡默默說著“對不起,C喜歡我。”(233333333)

Love triangle被定義為:如果A喜歡B,B喜歡C,C喜歡A則稱為Love triangle。現在讓你尋找有沒有Love triangle。

輸入描述:

第一行一個正整數N(n<=5000),第二行n個數X1,X2X3……Xn代表i喜歡Xi

輸出描述:

如果存在Love triangle則輸出YES,沒有則輸出NO。
示例1

輸入

5
2 4 5 1 3

輸出

YES

 
     
    
   
  
 

這題我本來以為,是個很簡單的題目……

事實上它也的確是個很簡單的題目……

但是我一直沒理解對……

我一開始的程式碼寫的就是A->B,B->C,然後C不等於A,就完事了,覺得完美

於是就陷入了WA的死亡迴圈……

我一直到比賽結束還是這麼理解的  直到我看了人家的程式碼。。

原來C還要喜歡A的……

這就尷尬了呀……

po一下程式碼

#include <stdio.h>
#include 
<stdlib.h> #include <string.h> #define MAX 1e9 #define ll long long int main() { int n,i,x[6000]; scanf("%d",&n); for(i=1; i <=n; i++) { scanf("%d",&x[i]); } int judge=0; for(i=1; i <= n; i++) { if(x[x[x[i]]]==i) { printf(
"YES\n"); //沒什麼難度,總之就是i對應的x[i]喜歡的人對應喜歡的人再對應的人是i,然後就……三角戀了? judge = 1; break; } } if(judge == 0) printf("NO\n"); return 0; }

我居然被這種題搞死了……語文真的要好好學啊……