排队打水
Posted wang者归来
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排队打水相关的知识,希望对你有一定的参考价值。
给 N个人,M个水管,问第N+1个人等多久才能打水。
思路:
我偷懒用了单调队列。 用的不太熟,稍微调了一会。
#include<iostream> #include<cstdio> #include<queue> #include<vector> #include<algorithm> #include<cstring> using namespace std; int n,m; int a[100009]; priority_queue<long long >q; long long x; int main() { freopen("death.in","r",stdin); freopen("death.out","w",stdout); scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=m;i++) q.push(-a[i]); for(int i=m+1;i<=n;i++) { x=q.top();q.pop(); x-=1LL*a[i]; q.push(x); } cout<<-q.top(); return 0; }
以上是关于排队打水的主要内容,如果未能解决你的问题,请参考以下文章