1. 程式人生 > >HDU-2094產生冠軍

HDU-2094產生冠軍

#include<iostream>
#include<map>
#include<string>
#include <fstream>
int n;
std::map<std::string,int> peo;
typedef std::map<std::string,int> ::iterator m_itr;
std::string str1,str2;
m_itr itr;

std::string win;
int w_n;
int main()
{
	//std::fstream fin("1.txt");
	while (std::cin>>n&&n){
		for(int i=0;i!=n;i++){
			std::cin>>str1>>str2;
			if((itr=peo.find(str1))==peo.end()){
				peo.insert(std::make_pair(str1,0));
			}
			if((itr=peo.find(str1))==peo.end()){
				peo.insert(std::make_pair(str2,1));
			}else{
				peo[str2]++;
			}
		}

		for(itr=peo.begin();itr!=peo.end();itr++){
			if(itr->second==0){
				win.assign(itr->first);
				w_n++;
			}
		}
		if(w_n==1){
			std::cout<<"Yes"<<std::endl;
		}else{
			std::cout<<"No"<<std::endl;
		}

		w_n=0;
		peo.clear();
	}
}

相關推薦

HDU 2094 產生冠軍(set)

而且 smi 統計 空格 color 直接插入 names acc false 產生冠軍 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub

題解報告:hdu 2094 產生冠軍

pro script repeat-y clu back 目的 otto turn als 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=2094 Problem Description 有一群人,打乒乓球比賽,兩兩捉對撕殺,

HDU-2094產生冠軍

#include<iostream> #include<map> #include<string> #include <fstream> int n; std::map<std::string,int> peo;

HDU 2094 產生冠軍

Description 有一群人,打乒乓球比賽,兩兩捉對撕殺,每兩個人之間最多打一場比賽。  球賽的規則如下:  如果A打敗了B,B又打敗了C,而A與C之間沒有進行過比賽,那麼就認定,A一定能打敗C。  如果A打敗了B,B又打敗了C,而且,C又打敗了A,那麼A、B、C三者

HDU 2094 產生冠軍

 產生冠軍 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10083    Accepted Submis

杭電---2094 產生冠軍

Problem Description  有一群人,打乒乓球比賽,兩兩捉對撕殺,每兩個人之間最多打一場比賽。 球賽的規則如下: 如果A打敗了B,B又打敗了C,而A與C之間沒有進行過比賽,那麼就認定,A一定能打敗C。 如果A打敗了B,B又打敗了C,而且,C又打敗了A,那麼A、

2094 產生冠軍

產生冠軍 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 11473    Accepted Submis

HDOJ-2094-產生冠軍

 產生冠軍 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 11646    Accepted Submis

2094 ——產生冠軍

Problem Description 有一群人,打乒乓球比賽,兩兩捉對撕殺,每兩個人之間最多打一場比賽。 球賽的規則如下: 如果A打敗了B,B又打敗了C,而A與C之間沒有進行過比賽,那麼就認定,A一定能打敗C。 如果A打敗了B,B又打敗了C,而且,C又打敗了A,那麼A、B

hdoj 2094 產生冠軍

考察點:  set<string>的應用 題目大意:兩兩比賽,輸入值a,b,即為a贏了b,對於所有的ab組,求出是否能夠產生冠軍。 如果A打敗了B,B又打敗了C,而且,C又打敗了A,那麼A、B、C三者都不可能成為冠軍。 題目解析: 如果能夠產生冠軍,則

九度OJ1450題-產生冠軍-MAP的使用

-h n) for循環 間隔 clear for 全局 include 循環 題目1450:產生冠軍 時間限制:1 秒 內存限制:128 兆 特殊判題:否 提交:2839 解決:1161 題目描述: 有一群人,打乒乓球比賽,兩兩捉對撕殺,每兩個人之間最多打一場比賽。球

hdu2094產生冠軍(思維題)

產生冠軍 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 22557   &n

杭電產生冠軍

有一群人,打乒乓球比賽,兩兩捉對撕殺,每兩個人之間最多打一場比賽。 球賽的規則如下: 如果A打敗了B,B又打敗了C,而A與C之間沒有進行過比賽,那麼就認定,A一定能打敗C。 如果A打敗了B,B又打敗了C,而且,C又打敗了A,那麼A、B、C三者都不可能成為冠軍。 根據這個規則,無需迴圈較量,或

HDU2094 產生冠軍【set】

產生冠軍Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 19114    Accepted Submission(s

產生冠軍(杭電ACM2094)

Problem Description 有一群人,打乒乓球比賽,兩兩捉對撕殺,每兩個人之間最多打一場比賽。 球賽的規則如下: 如果A打敗了B,B又打敗了C,而A與C之間沒有進行過比賽,那麼就認定,A一定能打敗C。 如果A打敗了B,B又打敗了C,而且,C又打敗了A,那麼

九度OJ-1450:產生冠軍

  這道題厲害了。= =想不明白 演算法分析:   由於這裡的優先關係具有傳遞性,故可利用有向圖表示優先關係:“A優勝於C”==可抽象為==》“A到C之間存在有向路徑”。有了這層抽象就能進行以下分析: ①“不能出現迴圈優先關係”《==》不能出現環路:進行拓撲排序來檢測有無環

hdu2094 產生冠軍 拓撲排序

產生冠軍 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi

HDU2094-產生冠軍

產生冠軍                                                                             Time Limit: 1000/1000 MS (Java/Others)    Memory Limit

Hdu 2094之解題報告

Problem Description 有一群人,打乒乓球比賽,兩兩捉對撕殺,每兩個人之間最多打一場比賽。 球賽的規則如下: 如果A打敗了B,B又打敗了C,而A與C之間沒有進行過比賽,那麼就認定,A一

產生冠軍

題目描述有一群人,打乒乓球比賽,兩兩捉對撕殺,每兩個人之間最多打一場比賽。 球賽的規則如下: 如果A打敗了B,B又打敗了C,而A與C之間沒有進行過比賽,那麼就認定,A一定能打敗C。 如果A打敗了B,B又打敗了C,而且,C又打敗了A,那麼A、B、C三者都不可能成為冠軍。 根據這