zoukankan      html  css  js  c++  java
  • 产生冠军

    题目描述

    有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛。
    球赛的规则如下:
    如果A打败了B,B又打败了C,而A与C之间没有进行过比赛,那么就认定,A一定能打败C。
    如果A打败了B,B又打败了C,而且,C又打败了A,那么A、B、C三者都不可能成为冠军。
    根据这个规则,无需循环较量,或许就能确定冠军。你的任务就是面对一群比赛选手,在经过了若干场撕杀之后,确定是否已经实际上产生了冠军。
     

    输入

    输入含有一些选手群,每群选手都以一个整数n(n<1000)开头,后跟n对选手的比赛结果,比赛结果以一对选手名字(中间隔一空格)表示,前者战胜后者。如果n为0,则表示输入结束。
     

    输出

    对于每个选手群,若你判断出产生了冠军,则在一行中输出“Yes”,否则在一行中输出“No”。
     

    样例输入

    3
    Alice Bob
    Smith John
    Alice Smith
    5
    a c
    c d
    d e
    b e
    a d
    0

    样例输出

    Yes
    No
    这个题是从网上借鉴的方法,
    方法是 左边是胜利 右边是失败 看左边的 在不在右边 如果不在并且只有一名胜利者 那么就可以 ,否则不可以
    记住  比较字符串  一定用strcmp;
    用二维字符串 输入多次字符串;
    字符串输入不带指针&是因为他本事就是首地址;

    #include<stdio.h> #include<string.h> int main() { int n,m,d,e,i,j,k,p; char a[10000][100],b[1000][1000]; int c[1000],s[1000]; while(scanf("%d",&n)&&n)//这样是为了可以输入零结束。 { k=0; memset(c,0,sizeof(c));//因为又多次循环 所以要初始化数组; memset(s,0,sizeof(s)); for(i=0;i<n;i++) { scanf("%s%s",a[i],b[i]);//输入;定义C里面的值全为1; c[i]=1; } for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(strcmp(a[i],b[j])==0)//如果相等的话 把那个C[i]=0; { c[i]=0; } } } for(i=0;i<n;i++) { if(c[i]==1) { s[k++]=i;//找出c[i]为一的下坐标存到另一个数组里。 } } p=1; for(i=1;i<k;i++) { if(strcmp(a[s[i]],a[s[i-1]])==0)//用坐标为s[K]的a[s[k]]值进行比较 如果相等就个数加一 p++;// } if(p==k)//与得到的K 进行比较 如果相等就代表只有一个人 输出YES { printf("Yes");} else//否则输出NO; { printf("No"); } } }
    
    
    
    
    
  • 相关阅读:
    什么是一阶矩和二阶矩?
    [Pytorch]基于混和精度的模型加速
    Pytorch: 命名实体识别: BertForTokenClassification/pytorch-crf
    ipykernel_launcher.py: error: unrecognized arguments: -f /Users/apple/Library/Jupyter/runtime/kernel
    pytorch中查看gpu信息
    NLP突破性成果 BERT 模型详细解读 bert参数微调
    os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" os.environ["CUDA_VISIBLE_DEVICES"] = "0"
    禁用gpu首选
    Tensorflow中tf.ConfigProto()详解
    python命令之m参数 局域网传输
  • 原文地址:https://www.cnblogs.com/zhangjiaqi123/p/6184637.html
Copyright © 2011-2022 走看看