算数难吗?不难,用数组来分别计算什么的,一下就可以出来。我这样一个一个改数字的结果,已经简化了很多了,,,
以下是题目:
对l和m有数的大小要求,一个是10000,一个是100,都不大,所以我用了一个10000的数组来记录每一颗树的位置,其中的0或1表示它有没有被砍掉;如下
#include<iostream>
using namespace std;
int main()
{
int a[10000];
int m, l, min, max, p = 0;
cin >> l >> m;
for (int i = 0; i < l; i++) a[i] = 0;
for (int i = 0; i < m; i++) {
cin >> min >> max;
for (int f = min; f < max; f++) a[f] = 1;
}
for (int k = 0; k < l; k++) {
if (a[k] == 0) p++;
}
cout << p - 1;
return 0;
}
按照算法,将个区域的每一颗要砍掉的树给记录为1,未砍掉的记录为0,然后遍历一遍,把这个数组里面每一个为0的元素个数加起来,得到剩下的树的个数结果。
我简化了一下,将数组的大小从动态的,弄成了静态的,这样在读取的时候不会出现地址错误的问题,这个东西烦了我好久。在后面就是字母对输出的数修改一下啊。