P1781 宇宙总统

解题思路

这道题目要求我们从多个候选人中找出票数最多的总统候选人。由于票数可能非常大(达到100位数字),我们需要使用字符串来处理票数比较。

方法思路

  1. 字符串比较:使用字符串存储票数,避免大数处理问题

  2. 比较规则

    • 首先比较字符串长度,长度更大的票数更大

    • 如果长度相同,则直接进行字符串字典序比较

  3. 记录结果:在比较过程中记录最大票数及其对应的候选人编号

代码注释

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n; cin >> n;  // 读取候选人数量
    string ans;  // 存储当前最大票数字符串
    int id = 0;  // 存储当前最大票数候选人的编号
    
    for(int i = 1; i <= n; i++)  // 遍历每个候选人
    {
        string s; cin >> s;  // 读取当前候选人的票数字符串
        
        // 比较票数大小
        if(s.size() > ans.size()){  // 当前票数位数更多
            ans = s;  // 更新最大票数
            id = i;  // 更新候选人编号
        }
        else if(s.size() == ans.size() && s > ans){  // 位数相同但数值更大
            ans = s;  // 更新最大票数
            id = i;  // 更新候选人编号
        }
    }
    
    cout << id << endl << ans << endl;  // 输出结果
    return 0;
}

 

posted @ 2025-05-20 17:55  CRt0729  阅读(74)  评论(0)    收藏  举报