题目链接:https://ac.nowcoder.com/acm/contest/322/D
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
一天小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。
输入
5
2 4 5 1 3
输出
YES
解题思路
签到题,判断三个人能不能形成一个环。
#include <iostream>
using namespace std;
int main()
{
int n, temp = 0, f[5010];
scanf("%d", &n);
for (int i = 1; i <= n; i++)
scanf("%d", &f[i]);
for (int i = 1; i <= n; i++)
{
if (f[f[f[i]]] == i)
{
temp = 1;
break;
}
}
if (temp)
puts("YES");
else puts("NO");
return 0;
}