1 条题解

  • 0
    @ 2025-8-24 23:08:35

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar jojo222
    最后在线时间:2025/8/20 11:40 || 五升六蒟蒻,爱被 JC(?) || /paste/eygtf1rk

    搬运于2025-08-24 23:08:35,当前版本为作者最后更新于2025-01-18 18:50:02,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    首先,将记录按时间排序;接着,选 iii+1i+11i<n1\le i<n)的记录做差取最大值;最后,输出答案。

    #include <bits/stdc++.h>
    using namespace std;
    int n;
    double ans;
    pair<int, int> a[100001];
    int main()
    {
    	cin >> n;
    	for(int i = 1; i <= n; i++)
    		scanf("%d%d", &a[i].first, &a[i].second);
    	sort(a + 1, a + 1 + n);
    	for(int i = 1; i < n; i++)
    		ans = max(ans, 1.0 * abs(a[i + 1].second - a[i].second) / (a[i + 1].first - a[i].first));
    	cout << ans;
    	return 0;
    }
    

    知识:pair 也能排序,先看 first,如果相同,看 second
    警示后人:nn 的范围在题干中,不要看下面 50%50\% 的数据;位置做差要取绝对值,可能往回跑。

    • 1

    信息

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