您的位置:首页 > 其它

CodeForces 939A(水题)

2018-03-28 09:18 375 查看
DescriptionAs you could know there are no male planes nor female planes. However, each plane on Earth likes some other plane. There are n planes on Earth, numbered from 1 to n, and the plane with number i likes the plane with number fi, where 1 ≤ fi ≤ n and fi ≠ i.We call a love triangle a situation in which plane A likes plane B, plane B likes plane C and plane C likes plane A. Find out if there is any love triangle on Earth.InputThe first line contains a single integer n (2 ≤ n ≤ 5000) — the number of planes.The second line contains n integers f1, f2, ..., fn (1 ≤ fi ≤ n, fi ≠ i), meaning that the i-th plane likes the fi-th.OutputOutput «YES» if there is a love triangle consisting of planes on Earth. Otherwise, output «NO».You can output any letter in lower case or in upper case.Sample InputInput
5
2 4 5 1 3
Output
YES
Input
5
5 5 5 5 1
Output
NO
HintIn first example plane 2 likes plane 4, plane 4 likes plane 1, plane 1 likes plane 2 and that is a love triangle.In second example there are no love triangles.

我也不知道你是怎么想的,谁说的如果从第一个数开始找找不到的话这个序列就没有三角恋了呢?会死循环???我打你啊!辛酸。
看一下这个题怎么做吧,这个题的特点是他是一个有限的查找,对于每一个数查三次就可以判断该数是否构成了三角恋,而不需要一开始想的那么复杂,从第一个数开始,模拟题目查找的过程。
对于这种有限次且次数不多的查找,一步到底进行判断。
AC代码:
#include<stdio.h>
#include<stdio.h>

int main()
{
int number[5009];
int i,p,j,y,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&number[i]);
for(i=1;i<=n;i++)
if(number[number[number[i]]]==i)
{
printf("YES\n");
break;
}
if(i>n)
printf("NO\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: