1. 程式人生 > 其它 >Django資料庫的增刪改查操作

Django資料庫的增刪改查操作

https://www.luogu.com.cn/problem/P3545

模擬費用流入門題

能滿足就滿足

不能滿足考慮反悔,替換掉前面一個\(b_j\)最大的,如果\(b_j<b_i\)那就沒有必要替換

code:

#include<bits/stdc++.h>
#define N 250050
#define ll long long
#define pii pair<int, int>
#define fi first
#define se second
using namespace std;
struct Q {
    int t, s;
} a[N];
int n;
priority_queue<pii > q;
int main() {
    scanf("%d", &n);
    for(int i = 1; i <= n; i ++) scanf("%d", &a[i].t);
    for(int i = 1; i <= n; i ++) scanf("%d", &a[i].s);
    int ans = 0;
    ll T = 0;
    for(int i = 1; i <= n; i ++) {
        T += a[i].t;
        if(T >= a[i].s) {
            T -= a[i].s;
            q.push(make_pair(a[i].s, i));
            ans ++;
        } else {
            if(q.size() && a[i].s < q.top().fi) {
                T += q.top().fi; q.pop();
                T -= a[i].s;
                q.push(make_pair(a[i].s, i));
            }
        }
    }
    printf("%d\n", ans);
    while(q.size()) printf("%d ", q.top().se), q.pop();
    return 0;
}