<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          hdu 2094 產(chǎn)生冠軍

          共 1462字,需瀏覽 3分鐘

           ·

          2021-08-28 00:40

          產(chǎn)生冠軍

          Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
          Total Submission(s): 36138    Accepted Submission(s): 16344


          Problem Description

          有一群人,打乒乓球比賽,兩兩捉對撕殺,每兩個人之間最多打一場比賽。
          球賽的規(guī)則如下:
          如果A打敗了B,B又打敗了C,而A與C之間沒有進(jìn)行過比賽,那么就認(rèn)定,A一定能打敗C。
          如果A打敗了B,B又打敗了C,而且,C又打敗了A,那么A、B、C三者都不可能成為冠軍。
          根據(jù)這個規(guī)則,無需循環(huán)較量,或許就能確定冠軍。你的任務(wù)就是面對一群比賽選手,在經(jīng)過了若干場撕殺之后,確定是否已經(jīng)實(shí)際上產(chǎn)生了冠軍。

           


          Input

          輸入含有一些選手群,每群選手都以一個整數(shù)n(n<1000)開頭,后跟n對選手的比賽結(jié)果,比賽結(jié)果以一對選手名字(中間隔一空格)表示,前者戰(zhàn)勝后者。如果n為0,則表示輸入結(jié)束。

           


          Output

          對于每個選手群,若你判斷出產(chǎn)生了冠軍,則在一行中輸出“Yes”,否則在一行中輸出“No”。

           


          Sample Input

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

           


          Sample Output

          Yes
          No



          問題分析

            比賽中互有勝負(fù),將所有人放入一個集合中,輸?shù)娜朔湃肓硗庖粋€集合中。只有唯一1個人沒有輸時,才產(chǎn)生冠軍。

          程序說明

            程序中,使用STL的集合類來實(shí)現(xiàn)。

          代碼:

          #include <iostream>
          #include <string>
          #include <set>
          using namespace std;
          int main()
          {
          int n;
          set<string> all, lose;
          string Winner, loser;
          while(cin >> n && n != 0)
          {
          all.clear();
          lose.clear();
          while(n--)
          {
          cin >> Winner >> loser;
          all.insert(Winner);
          all.insert(loser);
          lose.insert(loser);
          }
          // 只有一人沒有輸,才有冠軍
          if(all.size() - lose.size() == 1)
          cout << "Yes" << endl;
          else
          cout << "No" << endl;
          }
          return 0;
          }


          瀏覽 50
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费日本黄色电影网站 | 国产综合视频在线 | 一区在线看 | 好逼天天操 | 男女黄页网址 |