首页 > 其他分享 >【洛谷 P1781】宇宙总统 题解(高精度+结构体排序)

【洛谷 P1781】宇宙总统 题解(高精度+结构体排序)

时间:2023-12-22 23:31:59浏览次数:45  
标签:洛谷 struct int 题解 总统 vote length P1781 样例

宇宙总统

题目描述

地球历公元 6036 年,全宇宙准备竞选一个最贤能的人当总统,共有 【洛谷 P1781】宇宙总统 题解(高精度+结构体排序)_i++ 个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统。

输入格式

第一行为一个整数 【洛谷 P1781】宇宙总统 题解(高精度+结构体排序)_i++,代表竞选总统的人数。

接下来有 【洛谷 P1781】宇宙总统 题解(高精度+结构体排序)_i++ 行,分别为第一个候选人到第 【洛谷 P1781】宇宙总统 题解(高精度+结构体排序)_i++ 个候选人的票数。

输出格式

共两行,第一行是一个整数 【洛谷 P1781】宇宙总统 题解(高精度+结构体排序)_ci_05,为当上总统的人的号数。

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

样例 #1

样例输入 #1

5
98765
12365
87954
1022356
985678

样例输出 #1

4
1022356

提示

票数可能会很大,可能会到 【洛谷 P1781】宇宙总统 题解(高精度+结构体排序)_i++_06 位数字。

【洛谷 P1781】宇宙总统 题解(高精度+结构体排序)_#include_07

思路

给sort函数传入自定义比较器,对结构体进行排序。

AC代码

#include <iostream>
#include <algorithm>
#define AUTHOR "HEX9CF"
using namespace std;

const int maxn = 100005;

struct S {
    int id;
    string s;
}vote[maxn];

bool cmp(struct S x, struct S y){
    if(x.s.length() == y.s.length()){
        int i = 0;
        while(x.s[i] == y.s[i]){
            i++;
        }
        return x.s[i] > y.s[i];
    }
    return x.s.length() > y.s.length();
}

int main() {
    int n;
    cin >> n;
    for(int i = 0; i < n; i++) {
        cin >> vote[i].s;
        vote[i].id = i + 1;
    }
    sort(vote, vote + n, cmp);
    cout << vote[0].id << endl << vote[0].s << endl;
    return 0;
}

标签:洛谷,struct,int,题解,总统,vote,length,P1781,样例
From: https://blog.51cto.com/HEX9CF/8939508

相关文章

  • 题解:【XR-3】核心城市
    题解:【XR-3】核心城市思路一:考虑由特例推广到一般1、很容易想到先考虑一个关键点的情况,然后再推广到一般情况。2、一个点肯定选距离上最平衡的那个点,即树的中心。接着在中心周围贪心的选剩下的(k-1)个关键点即可。3、这里有一个误区:各点到某点的距离最小,是找树的中心而不是重......
  • 闭合区域面积统计 题解
    题目描述计算一个\(10\times10\)矩阵中由\(1\)围成的图形的面积。如下所示,在\(10\times10\)的二维数组中,\(1\)围住了\(15\)个点,因此面积为\(15\)。000000000000001110000000100100000001001000100010100101......
  • CF1881F Minimum Maximum Distance 题解
    因为白点对\(f_i\)没有贡献,所以可以重构出一棵原树的子树,使得所有的叶子都为标记点且标记点数量不变(没有删去标记点)。因为没有标记被删去且结构不变,所以这棵树的答案与原树答案相同。现在,对于所有节点,到它距离最大的标记点一定在叶子上。那么问题就变为:求出树上任意一点到所有......
  • ISCTF2023部分题解
    WEB:圣杯战争!!!(题解:结局别说遗憾Zn.)解题思路:打开题目链接,代码如下:<?phphighlight_file(__FILE__);error_reporting(0);classartifact{public$excalibuer;public$arrow;publicfunction__toString(){echo"为Saber选择了对的武器!<br>";return$this->excal......
  • 【洛谷 P1093】[NOIP2007 普及组] 奖学金 题解(结构体排序)
    [NOIP2007普及组]奖学金题目描述某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前名学生发奖学金。期末,每个学生都有门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规......
  • 洛谷 P1957
    题目链接:在每一行,因为不确定第一个输入数据的类型,所以要用字符串输入。值得注意的是,\(\sfsprintf\)的函数原型为intsprintf(char*buffer,constchar*format[,argument]…);,其第一个参数是char*类型,因此在使用\(\sfsprintf\)时一般使用字符串数组charstr[]而不用\(\s......
  • [CF17E] Palisection 题解
    [CF17E]Palisection题解思路直接统计相交的字符串很难数,考虑正难则反。用总共的回文串对数减去相离的回文串个数。设总共有\(tot\)个回文串,用manacher跑出来每个位置的最大回文半径后,使用差分的技巧保存两个数组:\(f_i\)表示以\(i\)为开头的回文串个数,\(g_i\)表示以......
  • CF187A 题解
    原题传送门题目大意如题意翻译。思路分析很水的一道题目,可以将第一个排列\(a\)看作最终排列,接下来每输入一个数,让它与\(a_m\)进行比较,直到两个排列相同。最后看题目范围,\(1≤n≤2\times10^5\),时间复杂度\(\mathcal{O(n)}\),空间复杂度\(\mathcal{O(n)}\)。代码:/*Writ......
  • CF1912L 题解
    原题传送门题目大意有一个仅有0和L构成的序列,求出一种方案,使得左部分的0数量不等于右部分的O数量,且左部分的L数量不等于右部分的L数量,若不存在输出-1。思路分析首先看题目范围,\(2≤n≤200\),数据很小,考虑暴力。可以使用字符串截取函数s.substr()。本题我们使......
  • P5289 [十二省联考 2019] 皮配 题解
    题目链接点击打开链接题目解法题意比较复杂,形式化一下题意是:一些人和一些城市,每个人属于一个城市,每个人属于\(A/B/C/D\)队,需要满足:每个城市中的人要么都属于\(AC\)或\(BD\),且\(A+C\leC_0,\;B+D\leC_1,\;A+B\leD_0,\;C+D\leD_1\)暴力\(dp\)是\(f_{i,a,b,c}\)表......