Изучите C++ у ребенка! Записывайте вопросы в процессе изучения Luogu C++ и подготовки к экзаменам и записывайте каждый момент.
Прилагается сводный пост: Вопросы о Luogu Brush, язык C++ | Резюме
【Описание】
За воротами одной школы на дороге стоит ряд деревьев длиной l , а расстояние между каждыми двумя соседними деревьями составляет 1 метр. Мы можем рассматривать дорогу как числовую ось, один конец дороги находится в положении числовой оси 0, а другой конец - в положении l ; каждая целая точка на числовой оси, то есть 0,1. ,2,…, l посадил дерево.
Потому что на дороге есть участки, которые можно использовать для строительства метро. Эти регионы представлены их начальной и конечной точками на числовой прямой. Известно, что координаты начальной и конечной точки любой области являются целыми числами, и между областями могут быть перекрывающиеся части. Деревья на этих участках (включая два дерева на концах участков) теперь подлежат удалению. Ваша задача — посчитать, сколько деревьев останется на дороге после того, как все эти деревья будут удалены.
【входить】
В первой строке находятся два целых числа, обозначающих соответственно длину l дороги и номер m площади .
Следующие m строк, каждая из которых содержит два целых числа u , v , представляют координаты начальной и конечной точек области.
【Выход】
В каждой строке выведите целое число, обозначающее количество деревьев, оставшихся на дороге после удаления всех этих деревьев.
【Пример ввода】
500 3 150 300 100 200 470 471
【Пример вывода】
298
【Пояснение кода】
#include <bits/stdc++.h>
using namespace std;
int main()
{
int l,m,u,v,a[10005],ans=0;
cin >> l >> m;
for (int i=0; i<=l; i++) {
a[i] = 1;
}
for (int i=0; i<m; i++) {
cin >> u >> v;
for (int j=u; j<=v; j++) {
a[j] = 0;
}
}
for (int i=0; i<=l; i++) {
if (a[i] == 1) {
ans++;
}
}
cout << ans;
return 0;
}
【результат операции】
500 3
150 300
100 200
470 471
298