void_AC @ 2024-03-30 10:33:35
#include <bits/stdc++.h>
using namespace std;
int m,l,all=0,u[100],v[100];
bool a[1000] = {false};
int main(){
cin >> l >> m;
for(int i=0; i<m; i++){
cin >> u[i] >> v[i];
}for(int i=0; i<m; i++){
for(int j=u[i]; i<v[i]; j++){
if(a[j] == false){
a[j] = true;
}if(a[j] == true){
a[j] = false;
}
}
}for(int i=0; i<l; i++){
if(a[i] == true){
all++;
}
}cout<<all<<endl;
return 0;
}
没有死循环; 没有编译死; 可能没有TLE(bushi;
by weitianjian @ 2024-03-30 11:35:09
至于为什么没有输出,实际上就是那个
by weitianjian @ 2024-03-30 11:36:40
对了,忘了件事,数组a开大一点,没必要这么节约
by void_AC @ 2024-03-30 12:04:12
#include <bits/stdc++.h>
using namespace std;
int m,l,all=0,u[100],v[100];
bool a[100000] = {false};
int main(){
cin >> l >> m;
for(int i=0; i<m; i++){
cin >> u[i] >> v[i];
}for(int i=0; i<m; i++){
for(int j=u[i]; i<=v[i]; j++){
/*I don't konw*/
}
}for(int i=0; i<=l; i++){
if(a[i] == true){
all++;
}
}cout<<all<<endl;
return 0;
}
by weitianjian @ 2024-03-30 12:43:45
#include <bits/stdc++.h>
using namespace std;
int m,l,all=0,u[100],v[100];
bool a[100000] = {false};
int main(){
cin >> l >> m;
for(int i=0; i<m; i++){
cin >> u[i] >> v[i];
}for(int i=0; i<m; i++){
for(int j=u[i];j<=v[i] /*i<=v[i]*/; j++){//死循环!!!改这里!!!改为j<=v[i]
a[j]=true;//直接覆盖即可
}
}for(int i=0; i<=l; i++){
if(a[i] == false){//emm,这里是在统计没有被去除的树木总数,由于被去除的都是true(见上文代码),统计false即可
all++;
}
}cout<<all<<endl;
return 0;
}