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

    http://acm.hdu.edu.cn/showproblem.php?pid=2094

    思路:

    冠军只有一个,并且冠军没有被打败。

    也就是说,记录下选手是否被打败过,如果最后只剩下一个人没有被打败,就能产生冠军,否则就不能。

    代码和解析如下:

    #include<iostream>
    #include<algorithm>
    #include<string>
    #include<vector>
    
    using namespace std;
    
    struct node
    {
        string s;
        int fail;                //fail为1表示被打败过,为0表示没有被打败过
    };
    
    int main()
    {
        int n,flag1,flag2;
        vector<node> s0;
    
        while (cin>>n &&n!=0)
        {
            s0.clear();                //注意每次都要清零
            for (int i=0; i<n; i++)
            {
                struct node s1,s2;
                cin>>s1.s>>s2.s;
                flag1=flag2=0;
                for(int j=0;j<s0.size();j++)
                {
                    if(s0[j].s==s1.s)                
    flag1
    =1; if(s0[j].s==s2.s) //如果已经记录过输的选手的信息,则将他标记为输 { flag2=1; s0[j].fail=1; } if(flag1==1&&flag2==1) break; } if(flag1==0) //如果没有记录过赢的选手的信息,则保存在向量中,暂且标记为赢
    {
    s1.fail=0;
              s0.push_back(s1);
           }
    if(flag2==0) //如果没有记录过输的选手的信息,则保存进向量,并将他标记为输 { s2.fail=1; s0.push_back(s2); } } int count=0,i; for(i=0;i<s0.size();i++) { if(s0[i].fail==0) count++; } if(count==1) cout<<"Yes"<<endl; else cout<<"No"<<endl; } return 0; }
  • 相关阅读:
    winform中textbox属性Multiline=true时全选
    golang中的类和接口的使用
    beego上传文件
    golang 字符串操作实例
    golang操作文件
    golang获取程序运行路径
    ECharts使用心得
    es6新特性分享
    es6分享——变量的解构赋值
    NPM使用前设置和升级
  • 原文地址:https://www.cnblogs.com/yaoyueduzhen/p/4338010.html
Copyright © 2011-2022 走看看