1 solutions
Information
- ID
- 6511
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 8
- Tags
- # Submissions
- 130
- Accepted
- 24
- Uploaded By
这个题考察的点主要是递归,天梯赛经常出现类似的题目(有没有觉得这个题目很“天梯”呢,就连输出的风格也挺像天梯赛的,主要是出题的时候刚刚打完天梯赛~)。 当给出的学生并不是题目中所定义的大卷王时,就需要一层一层的去搜索,直到寻找到大卷王为止。由于这个题的数据范围较小(为了降低难度)可以不使用并查集的方法来完成这个题目。如果数据范围较大的话,就需要每一次进行一次集合的合并,来减少搜索的时间。 至于题目的背景是根据一些极端的例子改编的,当然有些夸张,是不是感觉真的很“卷”。还好,通过的人数比去年招新赛卷王那道题多多了~
附代码:
#include<stdio.h>
int pov[10010];
int find(int x) //不断的递归搜索,直到找到卷的源头为止
{
if (pov[x]==0)
{
return x;
}
return find(pov[x]);
}
int main()
{
int n,i;
for (i=0;i<10001;i++)//预处理每个同学的信息
{
pov[i]=-2;
}
scanf("%d",&n);
for (i=0;i<n;i++)//录入每个同学的信息
{
int s,t;
scanf("%d %d",&s,&t);
pov[s]=t;
}
int k;
scanf("%d",&k);
for (i=0;i<k;i++)
{
int s;
scanf("%d",&s);
if (pov[s]==-1)//判断,如果是-1输出“躺平”
{
printf("%d zai tang ping\n",s);
}
else if(pov[s]==0)//如果是0,则表明该同学就是卷的源头,输出“是大卷王”
{
printf("%d shi da juan wang\n",s);
}
else //如果不是上述的特殊情况,则就要递归查找卷的源头
{
int Z;
Z=find(s);
printf("%d bei %d dai juan le\n",s,Z);
}
}
return 0;
}
By signing up a 追梦算法网 universal account, you can submit code and join discussions in all online judging services provided by us.