竞赛
考级
思路: 利用0和1标记,若已经移树,则为1,没有移树,则为0。 1. 将所有树都标记为0,利用数组a[i]=0。 2. 将要树的标记为1,a[i]=1,在循环里判断、标记。 3. 再将没移树的进行计数。 AC代码 欢迎加入团队
挺简单的,祝你开心。。。。
这道题就是个模拟 思路如下: 首先开个数组来模拟马路, 用1表示没树,0反之 建地铁区域的地方就为1 最后统计0的个数 代码:
用数组施展忍术真-模拟就好了...
这道题其实很水十分简单。本萌新一遍过。 我的思想其实很简单,输入地铁区域后,再在数组中扫描一遍,把区间中的数改为1。然后遍历数组,累积求和。 废话不多说,直接上代码我知道你们只看这里:
话不多说,上题解 解题思路:代码里有 本题主要考察用数据结构来模拟真实的东西的状态(例:本题中为用数组的1和0来模拟树的被砍掉和没被砍掉的状态)
思路: 第一遍,将路上的所有树打上标记,表示这个点没有被访问过。 第二遍,读入区间的头和尾,从这个区间的头开始循环,到尾结束,标记为访问过。 第三遍,顺序访问路上的树,只要没访问过,计数加1,这样就求出了路上所有还存在的树的数目。
变量: 好了变量给了自己做 骗你的
通过结构体、数组和循环嵌套组合,完成程序;
题干信息解读 题目描述了一条长度为l的马路上均匀分布的树木(位置0到l),需要处理m个施工区域(可能重叠),移除这些区域内的所有树木后统计剩余树木数量。输入格式要求先读入l和m,再读入m对(u,v)表示施工区间24。输出仅需一个整数表示剩余树木数量 整体做题思路 1.初始化标记数组:创建长度为l+1的数组,初始值设为1表示所有位置有树。 2.处理施工区域:遍历每个区间,将对应数组位置标记为0表示移树。 3.统计剩余树木:遍历数组统计值为1的元素数量。 难点与注意事项 1.数组边界:需包含位置0和l的树木。 2.区间重叠处理:重复标记不会影响结果,只需最终状态 3.数据规模:l最大1e4,使用普通数组即可。 答案 代码说明: 1.使用vector容器动态存储树木状态,初始值为1表示有树 2.通过双重循环处理每个移除区域,将对应位置标记为0 3.最后遍历统计未被移除的树木数量(值为1的位置) 复杂度分析 时间复杂度:O(m*l),最坏情况下需处理所有区间的每个位置38。 空间复杂度:O(l),仅需存储长度为l+1的数组9。
我们使用一个布尔数组removed来标记需要移走的树的位置,初始值都为false表示所有树都存在 对于每个输入的区域 [u, v],我们将该区间内所有位置标记为true,表示这些树需要被移走 最后遍历整个马路范围 [0, l],统计未被标记的位置数量,即剩余的树的数量 马路长度 500,有 3 个区域 标记完所有需要移除的树后,统计发现还剩 298 棵树,与样例输出一致 代码如下:
空降坐标:CP002783 来源:NOIP2005 普及组 请看代码
终于做对了
n年以前写的
提交答案之后,这里将显示提交结果~