解题思路:
利用一维数组与数轴相似的特点进行操作,化实际为抽象
注意事项:
1、注意审题,是从0到L,所以最多有10001颗树。
2、给你的L是路的长度,但根据实际情况一共会有n+1颗树。
3、这种数组操作不用考虑重合情况,因为里面不是1(表示有树)就是0(表示没有树)。
4、嗯。。。一开始我忘了按输入分配数组大小,所以这个程序还是可以优化的。
我因为没有注意到1,2点耗了很多时间,希望你们别步我后尘
参考代码:
#include <stdio.h>
#include <stdlib.h>
#define MAX 10001
int main()
{
int n,x,z,y,all[MAX],p=0,b,temp;/*x为组,n为路长*/
scanf("%d %d",&n,&x);
for (b=0;b<MAX;b++)
all[b]=0;
for (b=0;b<n+1;b++)
all[b]=1;
while (x--)
{
scanf("%d %d",&z,&y);
for (;z<=y;z++)
all[z]=0;
}
for (b=0;b<MAX;b++)
{
if (all[b]==1)
p++;
}
printf("%d\n",p);
return 0;
}
0.0分
2 人评分
c primer plus 第十二章 12.1小节浏览:400 |
WU-蓝桥杯算法提高VIP-交换Easy (C++代码)浏览:1186 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:593 |
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:539 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:687 |
C语言训练-亲密数 (C语言代码)浏览:697 |
幸运数 (C++代码)浏览:1309 |
1128题解(返回值为数组的情况)浏览:571 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:416 |
1197求助浏览:667 |
扣脚的菜鸟 2021-05-07 20:01:00 |
#include<stdio.h> int main() { int l,m,max,min; scanf("%d%d",&l,&m); int i,j,a[l+1],c,d,sum=0; for(i=0;i<l+1;i++) { a[i]=1; } for(i=0;i<m;i++) { scanf("%d%d",&c,&d); max=c>d?c:d; min=c<d?c:d; for(j=min;j<max+1;j++) { a[j]=0; } } for(i=0;i<l+1;i++) { sum=sum+a[i]; } printf("%d",sum); }