小米oj 大胃王的烦恼
Posted dogenya
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小米oj 大胃王的烦恼相关的知识,希望对你有一定的参考价值。
离散化+前缀和,也可以优先队列搞一搞
1 #define mm(a) memset(a,0,sizeof(a)); 2 #define max(x,y) (x)>(y)?(x):(y) 3 #define min(x,y) (x)<(y)?(x):(y) 4 #define Fopen freopen("1.in","r",stdin); freopen("m.out","w",stdout); 5 #define rep(i,a,b) for(int i=(a);i<=(b);i++) 6 #define per(i,b,a) for(int i=(b);i>=(a);i--) 7 #include<bits/stdc++.h> 8 typedef long long ll; 9 #define PII pair<ll,ll> 10 using namespace std; 11 const int INF=0x3f3f3f3f; 12 const int MAXN=(int)4e5 + 5; 13 14 struct node { 15 ll l,r; 16 int id; 17 } a[MAXN]; 18 int n,dp[MAXN]; 19 vector<ll>v; 20 int getid(ll x) { 21 return lower_bound(v.begin(),v.end(),x)-v.begin()+1; 22 } 23 int main() { 24 while(~scanf("%d",&n)) { 25 v.clear(); 26 for(int i=1; i<=n; i++) { 27 scanf("%lld%lld",&a[i],&a[i].r); 28 v.push_back(a[i].l); 29 v.push_back(a[i].r); 30 } 31 sort(v.begin(),v.end()),v.erase(unique(v.begin(),v.end()),v.end()); 32 int sz=v.size(); 33 for(int i=0; i<=sz; i++)dp[i]=0; 34 for(int i=1; i<=n; i++) { 35 int l=getid(a[i].l); 36 int r=getid(a[i].r); 37 dp[l]++; 38 dp[r+1]--; 39 } 40 int max1=0; 41 for(int i=1; i<=sz; i++) { 42 dp[i]+=dp[i-1]; 43 max1=max(max1,dp[i]); 44 } 45 printf("%d\n",max1); 46 } 47 return 0; 48 }
以上是关于小米oj 大胃王的烦恼的主要内容,如果未能解决你的问题,请参考以下文章