1 条题解

  • 0
    @ 2025-8-24 21:30:16

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Yxa_Sheep
    打表过样例,暴力出奇迹,搜索真牛逼,骗分进省一||深搜 MLE,广搜 TLE,打表 RE,退火又 CE||删掉 display 看主页||被封取关(解封后私信)||六年级蒟蒻 ,代词请用“他”||当前状态:<离线>

    搬运于2025-08-24 21:30:16,当前版本为作者最后更新于2025-08-10 22:37:18,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    题目传送门

    题意

    给定 nn 个数,输出最大数和他是第几个输入的。

    思路

    由于数字太大,我们采用字符串输入,而是第几个输入的,我们可以用 idid 存下。
    那么怎么比大小呢?首先肯定是谁的位数多谁大,如果位数一样那么肯定是字典序大的大。所以我们就得到了如下的比较函数:

    bool cmp(node x, node y)
    {
    	if (x.s.size() == y.s.size())
    		return x.s > y.s;
    	return x.s.size() > y.s.size();
    }
    

    其他细节见代码。

    代码

    #include <bits/stdc++.h>
    using namespace std;
    int n;
    struct node
    {
    	string s;
    	int id;
    } a[110];
    bool cmp(node x, node y)
    {
    	if (x.s.size() == y.s.size())
    		return x.s > y.s;
    	return x.s.size() > y.s.size();
    }
    int main()
    {
    	ios::sync_with_stdio(0), cin.tie(0);
        cin >> n;
    	for (int i = 1; i <= n; i++)
    	{
    		cin >> a[i].s;
    		a[i].id = i;
    	}
    	sort(a + 1, a + n + 1, cmp);
    	cout << a[1].id << "\n" << a[1].s;
        return 0;
    }
    

    题解来之不易,且看且珍惜。给个赞再走吧。

    题目传送门

    • 1

    信息

    ID
    754
    时间
    1000ms
    内存
    125MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者