D >A->B->C-
阿新 • • 發佈:2019-01-05
題目描述
一天小A在金色的銀杏樹下向他喜歡的小姐姐B表白了,“對不起,我喜歡的是C”,B這樣說道,小A尷尬的笑了笑轉身離開了。他心裡默默說著“對不起,C喜歡我。”(233333333)
Love triangle被定義為:如果A喜歡B,B喜歡C,C喜歡A則稱為Love triangle。現在讓你尋找有沒有Love triangle。
輸入描述:
第一行一個正整數N(n<=5000),第二行n個數X1,X2,X3……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; }
我居然被這種題搞死了……語文真的要好好學啊……