CF1862E Kolya and Movie Theatre

张开发
2026/4/13 23:51:13 15 分钟阅读

分享文章

CF1862E Kolya and Movie Theatre
前置知识优先队列。做法我们先建一个小根堆的优先队列对于输入进来的数如果就将这个数加到优先队列里如果优先队列里数的数量比大了那么就弹出去一个数这个数此时一定是最小的然后答案的取值是。代码(求赞)#includebits/stdc.h using namespace std; const int N2e55; long long T,n,m,d; priority_queuelong long,vectorlong long,greaterlong long q;//最小堆 void solve(){ scanf(%lld%lld%lld,n,m,d); while(!q.empty()) q.pop(); long long sum0,ansLLONG_MIN; for(int i1;in;i){ long long x; scanf(%lld,x); if(x0){ q.push(x); sumx; } if(q.size()m){ sum-q.top(); q.pop(); } ansmax(ans,sum-d*i); } printf(%lld\n,max(ans,0ll)); } int main(){ scanf(%lld,T); while(T--){ solve(); } return ~(-1); }

更多文章