蓝桥杯省B T5 18%二分做法求调
  • 板块灌水区
  • 楼主__O_w_O__
  • 当前回复17
  • 已保存回复17
  • 发布时间2024/8/25 16:26
  • 上次更新2024/8/25 19:36:32
查看原帖
蓝桥杯省B T5 18%二分做法求调
1053567
__O_w_O__楼主2024/8/25 16:26

感觉没什么问题,但是只有18%的分数 代码是凭记忆复述出来的,大差不差,但是有可能有点问题

#include<bits/stdc++.h>
using namespace std;

const int N = 100010;
const int INF = (int) 1e9;

int n;
struct node {
    int x, y;
} a[N];
bool cmp(node a, node b) {
    if (a.x != b.x) return a.x > b.x;
    return a.y < b.y;
}
bool check(int x) {
    int now = x;
    for (int i = 1; i <= n; i++) {
        if (now < a[i].x) return false;
        now -= a[i].y;
    }
    return true;
}
int main() {
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) {
        scanf("%d%d", &a[i].x, &a[i].y);
    }
    int l = 1, r = INF, best = -1;
    while(l <= r) {
        int mid = (l + r) / 2;
        if (check(mid)) r = mid - 1, best = mid;
        else l = mid + 1;
    }
    printf("%d\n", best);
    return 0;
}

2024/8/25 16:26
加载中...