blue_239k @ 2022-10-23 15:38:19
#include <iostream>
using namespace std;
int main(){
int long long l;
int m;
cin>>l>>m;
int u[m-1],v[m-1];
for(int k=0;k<=m-1;k++){
cin>>u[k]>>v[k];
}
int p[l-1];
for(int long long k=0;k<=l-1;k++){
for(int y=0;y<=m-1;y++){
if(k>=u[y]&&k<=v[y]){
if(y==m-1){
p[k]=1;
}
else{
continue;
}
}
else{
p[k]=0;
}
}
}
int long long out=0;
for(int long long k=0;k<=l-1;k++){
if(p[k]!=1){
out=out+1;
}
}
cout<<out;
return 0;
}
by blue_239k @ 2022-10-23 15:40:05
哦我知道了,
for(int long long k=0;k<=l-1;k++){
for(int y=0;y<=m-1;y++){
if(k>=u[y]&&k<=v[y]){
这里是全部满足才赋值1。 而程序要的是有一个满足就赋值一。。。 又寄了
by blue_239k @ 2022-10-23 15:44:44
又寄了。。。
#include <iostream>
using namespace std;
int main(){
int long long l;
int m;
cin>>l>>m;
int u[m-1],v[m-1];
for(int k=0;k<=m-1;k++){
cin>>u[k]>>v[k];
}
int p[l-1];
for(int long long k=0;k<=l-1;k++){
for(int y=0;y<=m-1;y++){
if(k>=u[y]&&k<=v[y]){
p[k]=1;
}
else{
if(y==m-1){
p[k]=0;
break;
}
continue;
}
}
}
int long long out=0;
for(int long long k=0;k<=l-1;k++){
if(p[k]!=1){
out=out+1;
}
}
cout<<out;
return 0;
}
by cute_overmind @ 2022-10-23 15:45:25
#include <iostream>
using namespace std;
int main()
{
int i , j , k , m , n , l , sum = 0;
int a[10001] , q , z ;
cin >> l >> m;
for(i = 0;i <= l;i++)
a[i] = 0;
for(i = 1;i <= m;i++)
{
cin >> q >> z;
for(j = q;j <= z;j++)
{
if(a[j] == 0)
a[j]++;
}
}
for(i = 0;i <= l;i++)
{
if(a[i] == 0)
sum++;
}
cout << sum;
}
by blue_239k @ 2022-10-23 15:51:36
麻烦说一下怎么改谢谢
下面是20的代码:
#include <iostream>
using namespace std;
int main(){
int long long l;
int m;
cin>>l>>m;
int u[m-1],v[m-1];
for(int k=0;k<=m-1;k++){
cin>>u[k]>>v[k];
}
int p[l-1];
for(int long long k=0;k<=l-1;k++){
for(int y=0;y<=m-1;y++){
if(k>=u[y]&&k<=v[y]){
p[k]=1;
}
else{
continue;
}
}
}
int long long out=0;
for(int long long k=0;k<=l-1;k++){
if(p[k]==1){
out=out+1;
}
}
cout<<l-out;
return 0;
}
by 皇族鬼圣 @ 2022-10-23 15:58:06
我当时的代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[10005];
int l,m,u,v,num=0;
cin>>l;
for(int i=0;i<=l;i++)
{
a[i]=1;
}
cin>>m;
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)
num++;
}
cout<<num<<endl;
return 0;
}
by li_hao_yu @ 2022-10-23 16:00:02
#include <iostream>
using namespace std;
int main()
{
int a[10010],b,c,d,e,f;
cin>>b>>c;
for(int i=0;i<=b;i++)
{
a[i]=1;//把有树的标记上
}
for(int j=0;j<=c-1;j++)
{
cin>>d>>e;
for(int k=d;k<=e;k++)
{
a[k]=0;//被砍的记得改为0
}
}
for(int l=0;l<=b;l++)
{
if (a[l]==1)
f++;//统计剩余的树
}
cout<<f;
return 0;
}
你的有点麻烦
by 皇族鬼圣 @ 2022-10-23 16:02:38
@blue_239k 可能是你减树减重复了
by 皇族鬼圣 @ 2022-10-23 16:04:40
那个对于 20%的数据,保证区域之间没有重合的部分。你得了20分,可能应该就是重了
by blue_239k @ 2022-10-23 17:50:23
谢谢大佬