• 洛谷 P1781 宇宙总统


    题目:洛谷 P1781 宇宙总统: https://www.luogu.org/problemnew/show/P1781


    题目背景

    宇宙总统竞选

    题目描述

    地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统。

    输入输出格式

    输入格式:

    president.in

    第一行为一个整数n,代表竞选总统的人数。

    接下来有n行,分别为第一个候选人到第n个候选人的票数。

    输出格式:

    president.out

    共两行,第一行是一个整数m,为当上总统的人的号数。

    第二行是当上总统的人的选票。

    输入输出样例

    输入样例#1:
    5
    98765
    12365
    87954
    1022356
    985678
    
    输出样例#1:
    4
    1022356

    说明

    票数可能会很大,可能会到100位数字。

    n<=20


    这道题乍眼一看是高精度。

    但实际上我们可以避免高精度的麻烦。

    首先,对于每一次输入,我们将它的长度与已知最长对比。

    长度较长的一定是较大的那个数。

    如果两者长度相同(len),我们从首位一直向末尾对比,第一次出现在同一数位下的不等,数位上大的数一定大。

    所以可以跳出循环。

    这样我们不用高精就可以判断两个数的大小关系。

    AC代码:

     1 //
     2 #include <bits/stdc++.h>
     3 using namespace std;
     4 typedef long long ll;
     5 #define ri register ll
     6 
     7 ll n,t;
     8 string s1,s2;
     9 
    10 signed main()
    11 {
    12     ios::sync_with_stdio(0),cin.tie(0);
    13     cin>>n;
    14     for(ri i=1;i<=n;i++)
    15     {
    16         cin>>s2;
    17         if(s2.length()<s1.length()) continue;
    18         if(s2.length()>s1.length())
    19         {
    20             s1=s2;
    21             t=i;
    22         }
    23         else if(s2.length()==s1.length())
    24         {
    25             for(ri j=0;j<=s2.length()-1;j++)
    26             {
    27                 if(s1[j]==s2[j]) continue;
    28                 if(s1[j]<s2[j])
    29                 {
    30                     s1=s2;
    31                     t=i;
    32                 }
    33                 break;
    34             }
    35         }
    36     }
    37     cout<<t<<'
    '<<s1;
    38     return 0;
    39 }
    40 //
  • 相关阅读:
    Java中常见时间类的使用
    springboot2.0介绍1
    Element-ui-Basic
    Java开发中的23中设计模式详解(一)工厂方法模式和抽象工厂模式
    CSS3 变形、过渡、动画、关联属性浅析
    Webpack 入门教程
    ES6对象简洁语法
    如何下载ts文件
    PPT转PDF
    python实践
  • 原文地址:https://www.cnblogs.com/Vty66CCFF/p/11031045.html
Copyright © 2020-2023  润新知