P3611 Cow Dance Show S
题目描述
经过几个月的排练,奶牛们基本准备好展出她们的年度舞蹈表演。今年她们要表演的是著名的奶牛芭蕾——“cowpelia”。
表演唯一有待决定的是舞台的尺寸。一个大小为
一开始,第
显然,
输入格式
第一行包括
接下来的
保证
输出格式
输出在表演时间不大于
Solution
二分/优先队列/ 线段树
二分 +优先队列
到了最后只剩下 k 个时,取最大值即可。
void solve() {
int n, t;cin >> n >> t;
vector<int> a(n + 1);
for (int i = 1;i <= n;i++)cin >> a[i];
int kmi = 1, kma = n;
while (kmi <= kma) {
int kmid = (kmi + kma) / 2;
int time = 0;
priority_queue <int, vector<int>, greater<int>>q;
for (int i = 1;i <= kmid;i++) {
q.push(a[i]);
}
for (int i = kmid + 1;i <= n;i++) {
int tmp = q.top();q.pop();
q.push(a[i] + tmp);
}
while (q.size()) {
time = q.top();q.pop();
}
if (time <= t) kma = kmid - 1;
else kmi = kmid + 1;
}
cout << kmi << '\n';
}
二分 +线段树
(待更