差分,tr[i]为0则说明有树。
#include <iostream>
#include <cstring>
using namespace std;
int tr[10010];
int main()
{
int l, m;
memset(tr, 0, sizeof(tr));
cin >> l >> m;
for (int i = 1; i <= m; i++)
{
int l, r;
cin >> l >> r;
tr[l]--;
tr[r+1]++;
}
int cnt = 0;
if (tr[0] == 0) cnt++;
for (int i = 1; i <= l; i++)
{
tr[i] += tr[i - 1];
if (tr[i] == 0) cnt++;
}
cout << cnt;
return 0;
}


京公网安备 11010502036488号