专栏文章

NOIP 2025 游记

生活·游记参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mixeq6wm
此快照首次捕获于
2025/12/09 01:10
3 个月前
此快照最后确认于
2026/01/24 01:29
2 个月前
查看原文
总之第一题一眼就秒了。
大概代码:
CPP
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5 + 10, INF = 2000000000;
int n, q[N], x, res = INF;
ll m;
int main()
{
    scanf("%d%lld", &n, &m);
    for(int i = 0; i < n; i ++) {
        scanf("%d%d", &q[i], &x);
        res = min(res, q[i] + x);
    }
    sort(q, q + n);
    ll ans = m / res * 2;
    for(int i = 0; i < n; i ++) {
        m -= q[i];
        if(m >= 0) ans = max(ans, i + 1 + m / res * 2);
        else break;
    }
    printf("%lld\n", ans);
    return 0;
}
第二题成功推出式子,但是一直在想 O(n)\Omicron (n) 做法(因为感觉 O(n2)\Omicron (n^2) 实在是太卡了),没想到直接用枚举就可以了。。。 100 -> 0
后两道题也没怎么打暴力。
Moral lesson:一定要先打完暴力,当想到应该能得道部分的解时,去写,没准就过了。

评论

0 条评论,欢迎与作者交流。

正在加载评论...