AcWing 1750. 救生员(差分+暴力枚举)
Posted MangataTS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AcWing 1750. 救生员(差分+暴力枚举)相关的知识,希望对你有一定的参考价值。
题目链接
https://www.acwing.com/problem/content/1752/
思路
因为N的范围很小,我们先将所有的救生衣的时间区间用差分统计,然后枚举一下每一个救生衣可能被开除的情况,然后找到被开除的可能中最长的时间区间即可
代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1e2+10;
pair<int,int> a[N];
int n,d[N*10];
int slove(int loc)
int res = 0,ans = 0;
d[a[loc].first]--,d[a[loc].second]++;
for(int i = 0;i <= 1000; ++i)
res += d[i];
if(res > 0) ans++;
d[a[loc].first]++,d[a[loc].second]--;
return ans;
int main()
cin>>n;
for(int i = 1;i <= n; ++i)
cin>>a[i].first>>a[i].second;
d[a[i].first]++,d[a[i].second]--;
int ans = 0;
for(int i = 1;i <= n; ++i)
ans = max(ans,slove(i));
cout<<ans<<endl;
以上是关于AcWing 1750. 救生员(差分+暴力枚举)的主要内容,如果未能解决你的问题,请参考以下文章