zoukankan      html  css  js  c++  java
  • 1949-比赛成绩排序问题

    描述

     

           所有题目(Word、PDF格式):http://acm.njupt.edu.cn/acmhome/nuptacm/2013HW.zip

    2013“华为杯”南京邮电大学大学生团体歌唱大赛比赛形式为:大赛分为多轮,每一轮随机选择参赛团体进行两两PK赛。当根据多轮多场的PK赛成绩能够确定排名次序时,大赛结束。

    我们将问题进行简化,从1开始按递增顺序给每一个参赛团体分配一个整数编号,已知多场PK赛成绩,请你根据胜负关系确定两个给定参赛团体之间的成绩排名次序。举一个例子,参赛团体1在PK赛中胜参赛团体3,参赛团体2在PK赛中胜参赛团体1,则可知参赛团体2的成绩比参赛团体3的成绩排名高。

    输入

    输入包括多个行:

    l         第1行给出参赛团体总数M、已知PK赛成绩的场次C;

    l         接下来有C行,每一行先后给出两个参赛团体编号p和q,表示编号为p的参赛团体在PK赛中胜编号为q的参赛团体;

    l         最后1行先后给出两个参赛团体编号x和y。

    这里1≤M≤1000,1≤C≤10000,1≤p≤1000,1≤q≤1000,1≤x≤1000,1≤y≤1000,p≠q,x≠y。

    输出

     

    针对问题输入最后一行先后给出两个参赛团体编号x和y,输出1行,表示编号为x的参赛团体和编号为y的参赛团体之间的成绩先后次序,具体规定如下:

    l         编号为x的参赛团体的成绩排名比编号为y的参赛团体高,则输出x;

    l         编号为y的参赛团体的成绩排名比编号为x的参赛团体高,则输出y;

    l         不能确定编号为x的参赛团体和编号为y的参赛团体之间的成绩先后次序,则输出字符串N/A

    样例输入

    3 2

    1 3

    2 1

    2 3

    样例输出

    2

    #include <iostream>
    #include <list>
    #define max 1000
    using namespace std;
    bool *visit;
    int a[max][max]={0};
    int bfs(int u,int v)
    {
        list<int> s;
        s.clear();
        for(int j=0;j<max;j++) visit[j]=false;
        visit[u]=true;    
        s.push_back(u);
        while(s.size()>0)
        {
            int t=s.front();
            if(t==v) return 1;
            s.pop_front();
            for(int i=0;i<max;i++)
                if(a[t][i]&&!visit[i])
                {
                    s.push_back(i);
                    visit[i]=true;
                }
        }
        return 0;
    }
    int main()
    {
        int m,c,p,q,x,y;
        cin>>m>>c;
        visit=new bool[max];
        int i,j;
        for(j=0;j<max;j++) visit[j]=false;
        for(i=0;i<c;i++)
        {
            cin>>p>>q;
            a[p][q]=1;
        }
        cin>>x>>y;
        //cout<<bfs(x,y)<<" "<<bfs(y,x)<<endl;
        //cout<<bfs(x,y)<<" "<<bfs(y,x)<<endl;
        if(bfs(x,y)) cout<<x<<endl;
        else if(bfs(y,x)) cout<<y<<endl;
        else cout<<"N/A"<<endl;
        delete []visit;
        return 0;
    }
    

      

  • 相关阅读:
    工具使用:Oracle数据库表转换为Mysql
    使用Spring框架下的完成对事务的操作
    使用Spring框架下的JdbcTemplate 完成对数据库的增删改查操作
    我的历程,从心开始
    验证码
    加载效果
    mybatis逆向工程
    lo4j配置文件
    springmvc拦截器
    如何在标题栏加入图标
  • 原文地址:https://www.cnblogs.com/Rosanna/p/3438635.html
Copyright © 2011-2022 走看看