328 条题解
-
0
1971314255 LV 7 @ 7 年前
#include <stdio.h>//非常暴力
struct road
{
int sta;
int end;
}ar[100];
int main()
{
int L, M;
int time = 0;
int roa[10002] = { 0 };
scanf("%d %d", &L, &M);
for (int i = 0; i < M; i++)
{
scanf("%d %d", &ar[i].sta, &ar[i].end);
for (int j = ar[i].sta; j <= ar[i].end; j++)
roa[j] = 1;
}
for (int i = 0; i <= L; i++)
{
if (roa[i] == 0)
time++;
}
printf("%d", time);return 0;
} -
07 年前@
//c++
#include<iostream>
using namespace std;
int main(){
int a,b,j,l,i,m,t=0;
cin>>l>>m;
int c[l+30];
for(i=0;i<=l;i++) c[i]=1;
for(i=0;i<m;i++){
cin>>a>>b;
for(j=a;j<=b;j++) c[j]=0;
}
for(i=0;i<=l;i++) if(c[i]) t++;
cout<<t;
} -
07 年前@
#include <stdio.h>
const int N=10005;
int a[N];
int main()
{
int i,j,k,l,m,n,sum=0;
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++)
{
scanf("%d%d",&k,&l);
for(j=k;j<=l;j++)
a[j]++;
}
for(i=0;i<=n;i++)
if(a[i]==0)sum++;
printf("%d",sum);
} -
07 年前@
-
07 年前@
用数组必须容量大才行。。。
#include<stdio.h>
int main()
{
int a[100000],n,m,b1,b2,sum=0;
scanf("%d%d",&n,&m);
for(int i=0;i<=n;i++)
{
a[i]=1;
}
for(int i=1;i<=m;i++)
{
scanf("%d%d",&b1,&b2);
for(int j=b1;j<=b2;j++)
{
a[j]=0;
}
}
for(int i=0;i<=n;i++)
{
if(a[i]!=0)sum++;
}
printf("%d",sum);
return 0;
} -
07 年前@
#include<iostream>
using namespace std;
int a[10001];
int main()
{
int i,j,l,m,c,x,y;
c=0;
cin>>l>>m;
for(i=1;i<=m;i++)
{
cin>>x>>y;
for(j=x;j<=y;j++)
{
a[j]=1;
}
}
for(i=0;i<=l;i++)
{
if(a[i]==0)
{
c++;
}
}
cout<<c<<endl;
system ("pause");
return 0;
} -
07 年前@
#include<iostream>
using namespace std;
int a[10001];
int main()
{
int sum=0,m,x,y,l,i,j,k;
cin>>l>>m;
for(i=0;i<m;i++)
{
cin>>x>>y;
for(j=x;j<=y;j++)
a[j]=1;
}
for(k=0;k<=l;k++)
{
if(a[k]!=1)
sum++;
}
cout<<sum;
} -
07 年前@
#include<iostream>
using namespace std;
int a[110],b[110],c[10010];
int main()
{
int L,M,sum=0;
cin>>L>>M;
for(int i=0;i<M;i++)
{
cin>>a[i]>>b[i];
for(int j=a[i];j<=b[i];j++)
{
c[j]=1;
}
}
for(int i=0;i<=L;i++)
{
if(c[i]!=1)
sum++;
}
cout<<sum<<endl;
return 0;
} -
07 年前@
线段树。。。。。。
-
07 年前@
#include <stdio.h>
int main()
{
int l,m,a,b,sum=0,i,j;
int L[10001]={0};
scanf("%d %d",&l,&m);for(i=1;i<=m;i++)
{
scanf("%d %d",&a,&b);
for(j=a;j<=b;j++)
L[j]=1;
}for(i=0;i<=l+1;i++)
if(L[i]==1)
sum++;printf("%d",l+1-sum);
return 0;
} -
07 年前@
var l,m,x,y,i,j,ans:longint; a:array[0..10000] of integer;
begin
readln(l,m);
fillchar(a,sizeof(a),1);
for i:=1 to m do
begin
readln(x,y);
for j:=x to y do a[j]:=0;
end;
for i:=0 to l do
if a[i]<>0 then inc(ans);
writeln(ans);
end. -
07 年前@
我觉得这个应该属于哈希表的一种吧
-
07 年前@
#include<stdio.h>
int main()
{
int tree[10003],piece[103][2],i,l,m,a,num=0;
scanf("%d%d",&l,&m);
for(i=1;i<=m;i++)
{
scanf("%d%d",&piece[i][0],&piece[i][1]);
}
for(i=0;i<=l;i++)
{
tree[i]=1;
}
for(i=1;i<=m;i++)
{
for(a=piece[i][0];a<=piece[i][1];a++)
{
if(tree[a]==1)
{
tree[a]=0;
num++;
}
}
}
printf("%d",l-num+1);
} -
07 年前@
#include <iostream>
using namespace std;
int main(){
int M,N;
cin>>M>>N;
int tree[M+1];
for(int i=0;i<M+1;i++){
tree[i]=1;
}
int start,end;
while(N--){
cin>>start>>end;
for(int i=start;i<=end;i++){
tree[i]=0;
}
}
int count=0;
for(int i=0;i<M+1;i++){
if(tree[i]==1)count++;
}
cout<<count<<endl;
} -
07 年前@
vector<bool>
-
08 年前@
//经典桶排序
#include <stdio.h>
int aa[10010]={0};
int main()
{
int m,n,i,j,a,b,ans=0;
scanf("%d%d",&m,&n);
for(i=0;i<=m;i++)
aa[i]=1;
for(i=0;i<n;i++)
{
scanf("%d%d",&a,&b);
for(j=a;j<=b;j++)
{
aa[j]=0;
}
}
for(i=0;i<=m;i++)
{
if(aa[i]==1)
ans++;
}
printf("%d",ans);
return 0;}
-
08 年前@
-
08 年前@
考虑重叠部分,一直不行,换了一种方法
-
08 年前@
#include<iostream>
using namespace std;
int main()
{
int i,j,n;//循环变量2个,个数,
int js=0;//树的计数
int b,e;//begin,end
int a[10002]={0};
cin>>n;
for(i=0;i<=n;i++)
a[i]=1;//有树的是1,没有是0
int dt;//地铁
cin>>dt;
for(i=1;i<=dt;i++)
{
cin>>b>>e;
for(j=b;j<=e;j++)
a[j]=0;
}
/*for(i=0;i<=n;i++)
cout<<i<<" "<<a[i]<<" ";
cout<<endl;*/
for(i=0;i<=n;i++)
if(a[i]==1)
js++;
cout<<js;
return 0;
} -
08 年前@
code
include <cstdio>
using namespace std;
int main()
{
int l=0,m=0;
int begin=0,end=0;
char tree[10005]={0};
int num=0;
scanf("%d%d",&l,&m);
for(int i=0;i<=l;i++)
{
tree[i]='1';
}
for(int i=1;i<=m;i++)
{
scanf("%d%d",&begin,&end);
for(int j=begin;j<=end;j++)
{
tree[j]='0';
}
begin=0;
end=0;
}
for(int i=0;i<=l;i++)
{
if(tree[i]=='1')
{
num++;
}
}
printf("%d",num);
return 0;
}