本文主要是介绍CSU 1684-Disastrous Downtime(set+二分),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
D - Disastrous Downtime
Time Limit:1000MS Memory Limit:131072KB 64bit IO Format:%lld & %llu Description
Input
Output
Sample Input
2 1 0 10003 2 1000 1010 1999
Sample Output
1 2AC代码:#include<iostream> #include<functional> #include<algorithm> #include<cstring> #include<string> #include<cstdio> #include<vector> #include<queue> #include<set> using namespace std;typedef long long ll; typedef unsigned long long ull;#define T 100000 + 50struct node {ll v;bool operator<(const node& b)const{return v<b.v;} }a[T];struct line {ll val;line():val(0){}line(ll _2):val(_2){}bool operator<(const line& b)const{return val>b.val;} };ll v[T];bool cmp(const ll& a,const ll& b){return a>b;}int main() { #ifdef zscfreopen("input.txt","r",stdin); #endifint n,m,i,j;while(~scanf("%d%d",&n,&m)){ll c = 0;ll sum = 0;for(i=0;i<n;++i){scanf("%lld",&a[i].v);}sort(a,a+n);fill(v,v+T,0);multiset< ll,greater<int> > Q;multiset< ll,greater<int> >::iterator it;ll k;Q.insert(a[0].v+1000);ll cnt;for(i=1;i<n;++i){it = Q.begin();k = *it;it = Q.lower_bound(a[i].v);if(it==Q.end()){Q.insert(a[i].v+1000);}else if(it!=Q.end()){Q.erase(it);Q.insert(a[i].v+1000);}}cnt = Q.size();Q.clear();/*if(m==1){printf("%lld\n",cnt);continue;}*/if(cnt%m>0){cnt = cnt/m+1;}else {cnt = cnt/m;}printf("%lld\n",cnt);}return 0; }
这篇关于CSU 1684-Disastrous Downtime(set+二分)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!