1497748267


私信TA

用户名:1497748267

访问量:16150

签 名:

学校比赛,刷题走起

等  级
排  名 1331
经  验 2971
参赛次数 1
文章发表 25
年  龄 0
在职情况 学生
学  校 重庆邮电大学移通学院
专  业

  自我简介:

TA的其他文章

解题思路:用较大的数组标记,开始时全部设置为1(表示有树),循环控制输入次数,依次输入开始和结尾数据,在范围内的设置为0(没树)。

注意事项:标记数组一定要够大。

参考代码:

#include<iostream>
using namespace std;
int main()
{
	int L, M,sum=0,beg,end;
	int i, j;
	int book[10000];
	cin >> L >> M;
	for (i = 0; i <= L; i++)
		book[i] = 1;
	for (i = 0; i < M; i++)
	{
		cin >> beg >> end;
		for (j = beg; j <=end; j++)
		{
			book[j] = 0;
		}
	}
	for (i = 0; i <= L; i++)
	{
		if (book[i] == 1)
			sum++;
	}
	cout << sum << endl;
	return 0;
}


 

0.0分

24 人评分

  评论区

思路清晰,但是时间复杂度有点高
2022-12-28 19:59:07
这种解法不错, 我当时分情况考虑, 但情况太复杂了, 没有想到解决方法
2021-04-23 18:03:00
其实还能再快一点,用0表示有树。因为c数组不赋值就等于0,233
2020-07-20 00:46:12
  • «
  • 1
  • »