RaymondA @ 2024-05-01 20:36:24
#include<bits/stdc++.h>
using namespace std;
int main(){
int n, m, x, l;
cin >> n >> m;
bool a[n+100];
for(int i = 1; i <= n; i++) a[i] = true;
for(int i = 1; i <= m; i++){
cin >> x >> l;
for(int j = x; j <= l; j++){
a[j] = false;
}
}
int sum=0;
for(int i = 1; i <= n; i++){
if(a[i] == true) sum++;
}
if(sum!=0) cout << sum+1;
else cout << sum;
return 0;
}
by eHand_som @ 2024-05-04 12:58:49
#include<iostream>
#include<vector>
using namespace std;
int main(){
int m,l,trees=0;
cin>>l>>m;
vector<bool> t(l,true);
for(int i=1;i<=m;i++){
int u,v;
cin>>u>>v;
for(int j=u;j<=v;j++){
t[j] = false;
}
}
for(int i=0;i<=l;i++){
if(t[i]){
trees++;
}
}
cout<<trees;
return 0;
}
定义一个长度为l的bool数组(全部初始化为true),重复执行m次输入u和v,在循环中把bool数组中u到v全部设置为false
接着便利t就行了 因为t是bool值,所以不用在if中写
if(t[i]==true)
直接写
if(t[i])
就行了(如果t[i]项为true,if就会执行trees++)