DHU OJ 一维数组 树

思路及代码

/*
1.1第一行输入 L,M,L+1为树的数量,M 为地铁站数量
1.2接下来 M 行输入每个地铁站坐标的起始位置和结束位置,整数
2创建含 L+1 个元素的数组,赋值为1,表示初始坐标上的数的数量
3件地铁站的坐标赋值为0
4遍历数组,求和
5输出剩下的树的数量
*/
#include<iostream>
using namespace std;

int main(){
    int L, M, a, b;
    while (cin >> L >> M)
    {
        int sum = 0;
        int list[L+1];
        fill(list, list+L+1, 1);
        
        for (int i = 0; i < M; i++)
        {
            cin >> a >> b;
            fill(list+a, list+b+1, 0);
        }

        for (int j = 0; j < L + 1; j++)
        {
            sum += list[j];
        }

        cout << sum << endl;
    }
    return 0;
}

 参考:1️⃣DHU|OJ |C/C++|进阶-26 -树_c++,输入一个数,然后地铁站,要把树给摘掉-CSDN博客

2️⃣C++ fill()函数最详细介绍-CSDN博客

不会做,主要思路来于1️⃣

收获:1️⃣重复问题 数组赋值1改0的思路

2️⃣fill()

fill( first, last, value );
//fill函数会将范围 [ first, last ) 内的每个元素都设置为 value。first,last 均表示数组或对象的下标。

注意:只适用于数组和vector对象,不适用于array对象 

可用于数组初始化统一值,修改子数组的值等。

菜菜,不是教程,做题和学习记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值