指令碼太多不好管理?Jmeter這個元件幫你輕鬆搞定
阿新 • • 發佈:2021-12-13
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; }