cccckick @ 2024-09-30 21:51:03
#include<bits/stdc++.h>
using namespace std;
int main()
{
int l,m,c,b,sum=0;
cin>>l>>m;
vector<int> a(10000,1);
for(int i=0;i<m;i++)
{
cin>>c>>b;
for(int j=c;j<=b;j++)
{
a[j]=0;
}
}
for(int k=0;k<=l;k++)
if(a[k]==1)
sum++;
cout<<sum;
return 0;
}
by Terrible @ 2024-09-30 22:06:20
@cccckick
不管 vector<int>(10000,1)
还是 int[10000]
他们都直支持访问下标从
由于洛谷编译器不会特地查验数组下标是否在合理范围内,所以是可以越界访问/赋值的。会发生什么是没有任何保证的。
不过洛谷编译环境下,轻微越界可能不会直接RE,而且有几率访问到一个空白的内存空间,所以不一定会出问题。
对于 for(int i=0;i<=l;i++)
是将 a[10000]
(越界位置) 的位置赋值 vector<int> a(10000,1);
则没有将 a[10000]
赋
by cccckick @ 2024-09-30 22:48:07
@Terrible 好的好的,谢谢啦
by Zhouhqzx17 @ 2024-11-19 13:33:44
6啊