编程介的小学生 2019-08-26 19:25 采纳率: 0.4%
浏览 132

用C语言的程序编写,Let's go home

Problem Description
小时候,乡愁是一枚小小的邮票,我在这头,母亲在那头。
—— 余光中

集训是辛苦的,道路是坎坷的,休息还是必须的。经过一段时间的训练,lcy决定让大家回家放松一下,但是训练还是得照常进行,lcy想出了如下回家规定,每一个队(三人一队)或者队长留下或者其余两名队员同时留下;每一对队员,如果队员A留下,则队员B必须回家休息下,或者B留下,A回家。由于今年集训队人数突破往年同期最高记录,管理难度相当大,lcy也不知道自己的决定是否可行,所以这个难题就交给你了,呵呵,好处嘛~,免费**漂流一日。

Input
第一行有两个整数,T和M,1<=T<=1000表示队伍数,1<=M<=5000表示对数。
接下来有T行,每行三个整数,表示一个队的队员编号,第一个队员就是该队队长。
然后有M行,每行两个整数,表示一对队员的编号。
每个队员只属于一个队。队员编号从0开始。

Output
可行输出yes,否则输出no,以EOF为结束。

Sample Input
1 2
0 1 2
0 1
1 2

2 4
0 1 2
3 4 5
0 3
0 4
1 3
1 4

Sample Output
yes
no

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-31 14:21
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    #include <stdio.h>
    int main(){
        int T,M;
        scanf("%d%d",&T,&M);
        while(T--){
            int a[M];
            for(int i=0;i<M;++i)scanf("%d",a+i);
            int b[6][3]={};
            for(int i=0;i<M;++i){
                if(a[i]==0)continue;
                else{
                    b[a[i]][0]=b[a[i]-1][0]+1;
                    b[a[i]][1]=b[a[i]-1][1];
                    b[a[i]][2]=b[a[i]-1][2];
                }
            }
            int c[M],x,y,z;
            for(int i=0;i<M;++i){
                x=a[i];
                y=b[x][0];
                z=b[x][1];
                if(x!=y&&z==0)
                    printf("no\n");
                else if(y!=z)
                    printf("no\n");
                else
                    printf("yes\n");
            }
        }
        return 0;
    }
    
    评论

报告相同问题?