ganmu


私信TA

用户名:dotcpp0726067

访问量:3470

签 名:

等  级
排  名 1522
经  验 2809
参赛次数 0
文章发表 104
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

把马路的长当作数组长,在数组中全录入1,代表栽了树;在后续输入的数据中,两两为一组,在上一个数组中把一组的值变为0即可,则不需要考虑重复区域的问题,最后计算1的数量即可

注意事项:

参考代码:

#include<iostream>

using namespace std;

int main() 

{

    int arr[10010];//用于存放数据

    int a, b;//马路长度和区域数目

    int x, y;//区域输入的两个数

    int sum = 0;//记录总树

    cin >> a >> b;

    a++;//树比马路长多1

    for (int i = 0; i < a; i++)//让马路上的数都为1表示全栽满树

    {

        arr[i] = 1;

    }

    for (int j = 0; j < b; j++)

    {

        cin >> x >> y;

        y++; //树比区域长多1

        for (x; x < y; x++)//让区域内的数变为0代表挖掉的树

            arr[x] = 0;

    }

    for (int i = 0; i < a; i++)//计算出剩余的树

    {

        if (arr[i] == 1)

            sum++;

    }

    cout << sum;

    return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »