【题意理解】The New President UVALive

来源:互联网 发布:python 量化投资书籍 编辑:程序博客网 时间:2024/06/05 00:58

Think:
1知识点:排序+题意理解
2题意:n个候选人,m个选民,两轮选举,每级选举选民根据自己对候选人的满意度进行投票,第一轮选举所有候选人参加,若有一名候选人得票超过50%,则成功竞选,不进行第二轮选举,若没有候选人在第一轮选举中得票超过50%,则由第一轮选举中的前两名参加第二轮选举。输入数据保证不会出现第一轮选举中第二名第三名票数相同的情况。
3反思:
1>理解题意时不能急于求成,需要注意题目细节
2>提高词汇积累量
3>学习简单的英语句式语法

vjudge题目链接

以下为Accepted代码

#include <cstdio>#include <cstring>#include <algorithm>using namespace std;struct Node{    int id;    int num;    bool operator < (const Node &de) {        return num > de.num;    }}rec[104], a, b;int book[104][104];int main(){    int T, n, m, i, j;    scanf("%d", &T);    while(T--){        scanf("%d %d", &n, &m);        for(i = 0; i < 104; i++)            rec[i].id = i, rec[i].num = 0;        for(i = 1; i <= m; i++){            scanf("%d", &book[i][1]);            rec[book[i][1]].num++;            for(j = 2; j <= n; j++)                scanf("%d", &book[i][j]);        }        sort(rec, rec+104);        a = rec[0], b = rec[1];        if(a.num > m/2)            printf("%d 1\n", a.id);        else {            a.num = 0;            b.num = 0;            for(i = 1; i <= m; i++){                for(j = 1; j <= n; j++){                    if(book[i][j] == a.id){                        a.num++;                        break;                    }                    else if(book[i][j] == b.id){                        b.num++;                        break;                    }                }            }            if(a.num > b.num) printf("%d 2\n", a.id);            else printf("%d 2\n", b.id);        }    }    return 0;}
阅读全文
1 0
原创粉丝点击