前缀和
运用前缀和的优势是时间复杂度低,此题由于数据较弱,暴力也能过。
下面代码如果看的不是很明白,可以在纸上代入数据跟着代码走一遍,就很容易理解这个思想了。
#include
using namespace std;
int dp[11000];
int main()
{
int x,y;
cin >> x >> y;
int ans = 0;
for (int i=0,a,b;i<y;i++) { // 求前缀
cin >> a >> b;
dp[a]++;
dp[b+1]–;
}
if (dp[0] > 0) ans++;
for (int i=1;i<=x;i++) {
dp[i] += dp[i-1];
if (dp[i] > 0) ans++; // 维护前缀和,大于0代表数被拿走了
}
cout << x+1-ans; // 输出答案
return 0;
}