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 wangbinfeng @ 2024-03-30 10:46:02
如果你要求助,请说人类能理解的话1
否则,wyy请删帖……
by void_AC @ 2024-03-30 11:00:04
@wangbinfeng cout是输出耶!! 没输出!!
by masonxiong @ 2024-03-30 11:00:48
@lmh0416 请说人话谢谢
by weitianjian @ 2024-03-30 11:03:41
for(int j=u[i]; /*i<v[i]*/; j++){
改为
by weitianjian @ 2024-03-30 11:04:26
emm,不过你可能理解错题意了
by weitianjian @ 2024-03-30 11:06:34
输出为0,因为
if(a[j] == false){
a[j] = true;
}if(a[j] == true){
a[j] = false;
}
会使数组中永远全部为
by void_AC @ 2024-03-30 11:19:12
#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;
break;
}if(a[j] == true){
a[j] = false;
break;
}
}
}for(int i=0; i<l; i++){
if(a[i] == true){
all++;
}
}cout<<all<<endl;
return 0;
}
改进了,但仍有BUG
by weitianjian @ 2024-03-30 11:27:34
by weitianjian @ 2024-03-30 11:29:10
另外,最重要的东西仿佛没改啊
by weitianjian @ 2024-03-30 11:31:28
#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++){//改成j<=v[i],这里是死循环的原因
/*if(a[j] == false){
a[j] = true;
break;
}if(a[j] == true){
a[j] = false;
break;
}*/
//再理解一下题意然后重新写一下?
}
}for(int i=0; /*i<l*/; i++){//改为i<=l,统计至l而不是l-1
if(a[i] == true){
all++;
}
}cout<<all<<endl;
return 0;
}