设为首页 加入收藏

TOP

星际争霸中二分查找问题
2013-12-06 09:53:44 来源: 作者: 【 】 浏览:163
Tags:星际争霸 二分 查找 问题

    Description:
    自从电子竞技在中国被认定为第99个正式体育项目,教主就投身其中,SC(StarCraft 星际争霸)他拿手的一款游戏,当然也有很多职业选手参与其中。
    星际争霸中有3个种族:T(人族),P(神族),Z(虫族)而且每个玩家必须选择且只能选择一个种族来使用。
    在职业电子竞技联赛中,每位职业选手都会固定使用某一个自己喜爱的种族。
    在经过大量的比赛后,发现有如下的规律:
    1.使用人族的选手总是能战胜虫族选手
    2.使用虫族的选手总是能战胜神族选手
    3.使用神族的选手总是能战胜人族选手
    4.使用相同种族的选手对战总是产生平局
    现在将告诉你每个选手的种族,并进行若干场比赛,要求你输出每场比赛的结果。
    Input:
    本题只有一组测试数据
    第一行:N M (1 <= N, M<= 10000),N代表选手的数目,M代表比赛的场数。
    接下来N行,每行首先给出选手名字(玩家的名字只由大写、小写字母、数字组成,其中没有空格,最长的名字占10个字符)接着是他的种族(用T、P、Z表示)
    接下来M行,每行代表一场比赛,首先给出选手A的名字,接着给出选手B的名字。
    Output:
    对于每场比赛:
    选手A胜利 输出XiaoM Wins!
    选手B胜利 输出TianT Wins!
    平局 输出End in a draw!
    Sample Input:
    4 4
    JiaoZhu T
    Jaedong Z
    Chadalt T
    LMJ Z
    JiaoZhu Chadalt
    Jaedong LMJ
    JiaoZhu LMJ
    LMJ Chadalt
    Sample output:
    End in a draw!
    End in a draw!
    XiaoM Wins!
    TianT Wins!
    解析代码如下:
    #include
    #include
    #include
    using namespace std;
    typedef struct Competitor_ {
    char name[51];
    char grade;
    }Competitor;
    Competitor cp[10005];
    int cmp(const void *a, const void *b) {
    Competitor *p1=(Competitor*)a;
    Competitor *p2=(Competitor*)b;
    return strcmp(p1->name, p2->name);
    }
    int binarySearch(const Competitor cp[], int left, int right, const char key_name[]) {
    right--;
    while (left <= right) {
    int mid = left + (right - left) / 2;
    if (strcmp(cp[mid].name, key_name) > 0) {
    right = mid - 1;
    }else if(strcmp(cp[mid].name, key_name) < 0) {
    left = mid + 1;
    }else {
    return mid;
    }
    }
    }
    int main()
    {
    int n, m;
    char name1[55], name2[55];
    while (scanf(%d%d, &n, &m) != EOF) {
    for (int i=0; i

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇怕麻烦的人Gardon 推箱子 下一篇腾讯马拉松攻击范围问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·PostgreSQL 索引 - (2025-12-25 22:20:43)
·MySQL Node.js 连接 (2025-12-25 22:20:41)
·SQL 撤销索引、表以 (2025-12-25 22:20:38)
·Linux系统简介 (2025-12-25 21:55:25)
·Linux安装MySQL过程 (2025-12-25 21:55:22)