当前位置:网站首页>C语言数组题_校门外的树_标记法
C语言数组题_校门外的树_标记法
2022-08-09 10:48:00 【Cutecumber】
题目描述
某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是11米。我们可以把马路看成一个数轴,马路的一端在数轴00的位置,另一端在LL的位置;数轴上的每个整数点,即0,1,2,…,L0,1,2,…,L,都种有一棵树。
由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。
解题思路
刚一看题目,觉得这个数组的题重点考察重合部分的处理,以两个修建区域为例,无外乎三种情况1:两个不重合;2:两个重合(一个包含在另一个里);3:部分重合。起初以为单纯的把每种情况列出来相加再减去重合部分的树的数目就可以完成,但是这样非常复杂。
此题最佳的做法是用标记法,即先建立一个数组,令其所有元素为‘1’,将每一个建设区域内的值修改为‘0’,这样即使重合的部分也不用担心会多减去树。
代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
int l,m,count=0,i,j;
int a[101][2],lu[10001]={
'\0'}; //a储存所有区域的始末位置; lu储存马路上的树的位置
scanf("%d %d",&l,&m);
for(i=0;i<l+1;i++)
lu[i]=1; //l为马路长度,每棵树距离1米,树的个数为l+1,这里将所有树的位置标记为‘1’
for(i=0;i<m;i++)
{
scanf("%d %d",&a[i][0],&a[i][1]); //对m个区域的始末位置赋值
}
for(i=0;i<m;i++)
{
for(j=a[i][0];j<=a[i][1];j++)
{
lu[j]=0; //将每个区域的所在路的区间的值覆盖为‘0’,表示此段路被用作建设
}
}
for(i=0;i<l+1;i++)
if(lu[i]==1)
count++; //遍历lu,记录'1'的个数,即未被占用的树的数目
printf("%d",count);
}
边栏推荐
- 使用pip成功安装某个库,但pycharm中找不到,此问题的解决方案
- BERT预训练模型(Bidirectional Encoder Representations from Transformers)-原理详解
- For versions corresponding to tensorflow and numpy, report FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecate
- 史上最小白之《Word2vec》详解
- Product Quantization (PQ)
- 商业技术解决方案与高阶技术专题 - 数据可视化专题
- 爬虫实例,获取豆瓣上某部电影的评论
- verbose np.matmul/np.dot/np.multiply/tf.matmul/tf.multiply/*
- 【原创】解决阿里云oss-browser.exe双击没反应打不开,提供一种解决方案
- 解决1.tensorflow运行使用CPU不使用GPU 2.tensorflow环境下的GPU版本号 3.tensorflow和cuda以及cudnn版本对应问题 4.查看cuda和cudnn版本
猜你喜欢
[Error record] Solve the problem that ASRock J3455-ITX cannot be turned on without a monitor plugged in
【原创】VMware Workstation实现Openwrt软路由功能,非ESXI,内容非常详细!
可能95%的人还在犯的PyTorch错误
PoseNet: A Convolutional Network for Real-Time 6-DOF Camera Relocalization Paper Reading
机器学习-逻辑回归(logistics regression)
批量转换经纬度的网页实现方法
MySQL索引的B+树到底有多高?
Transformer+Embedding+Self-Attention原理详解
[Original] Usage of @PrePersist and @PreUpdate in JPA
【原创】JPA中@PrePersist和@PreUpdate的用法
随机推荐
机器学习-逻辑回归(logistics regression)
tensor.eq() tensor.item() tensor.argmax()
15.10 the POSIX semaphore Unix environment programming chapter 15
支付宝小程序的接入
pip common commands and changing source files
kubernetes中不可见的OOM
Probably 95% of the people are still making PyTorch mistakes
性能测试(01)-jmeter元件-线程组、调试取样器
Preparation for gold three silver four: how to successfully get an Ali offer (experience + interview questions + how to prepare)
torch.stack()的官方解释,详解以及例子
VBA实战(11) - 工作表(Sheet) 操作汇总
jvm-类加载系统
Netscope: Online visualization tool for neural network structures
unix系统编程 第十五章 15.2管道
获取指定年度所有周的工具类
unix环境编程 第十四章 14.8 存储映射I/O
TensorFlow: NameError: name 'input_data' is not defined
Quartz的理解
类与对象 (下)
Product Quantization (PQ)