zoukankan      html  css  js  c++  java
  • hdu 2094(产生冠军)

    思路一:产生冠军的条件:(1)获胜的人没输过一次(2)最终获胜的人只有一个

    思路二:观察一下,可以看到其实只要总元素数-失败者==1就可以输出YES了。。

    思路三:左边的为胜利者,右边的为失败者,如果左边的胜利者只有一个没在右边出现过,那么这个就是产生的冠军,否则产生不了

    思路一:

    #include<stdio.h>
    #include<map>
    #include<string>
    #include<iostream>
    using namespace std;
    string s1,s2;
    map<string,int>mv;
    map<string,int>lo;
    map<string,int>::iterator it;
    int main()
    {
        int n;
    
        while(scanf("%d",&n)!=EOF&&n!=0)
        {
            getchar();
            mv.clear();
            lo.clear();
    
            for(int i=0; i<n; i++)
            {
                cin>>s1>>s2;
                lo[s2]++;//insert
    
                it=mv.find(s2);//find and delete loser
                if(it!=mv.end())//found
                    mv.erase(it);
    
    
                it=lo.find(s1);
                if(it==lo.end())// not found
                    mv[s1]++;
            }
            int sum=mv.size();
            //for(it=mv.begin(); it!=mv.end(); it++)
                //sum++;
    
            if(sum==1)cout<<"Yes"<<endl;
            else cout<<"No"<<endl;
        }
        return 0;
    
    }
  • 相关阅读:
    IE的if条件判断
    嵌套div的margin-top不生效
    DocumentFragment对象
    javascript严格模式
    某视频网站下载分析
    c# winform 视频转字符动画
    asp.net mvc 5 蛋疼的问题
    asp.net mvc 防止重复提交
    easyHOOK socket send recv
    C# 之泛型详解
  • 原文地址:https://www.cnblogs.com/XDJjy/p/3036664.html
Copyright © 2011-2022 走看看