ALittleS0v1etCAT @ 2023-08-30 21:34:45
#include <iostream>
using namespace std;
int main()
{
int length,numOfSections; //数组长度,区间个数
cin >> length;
bool* trees = new bool[length]; // 利用指针声明动态变量
for (size_t i = 0; i < length; i++) // 初始化,全部设为true
{
trees[i] = true;
}
cin >> numOfSections;
for (size_t i = 0; i < numOfSections; i++) // 输入区间部分
{
int startOfSection=0,endOfSection=0; // 开始坐标,结束坐标
cin >> startOfSection;
cin >> endOfSection;
for (size_t j = startOfSection; j < endOfSection; j++) // 循环将区间内的树设为false
{
trees[j] = false;
}
}
int numOfTreesLeft=0; // 统计剩下的树
for (size_t i = 0; i < length; i++)
{
if (trees[i]) // 由于数组类型是bool,所以直接利用条件判断累加
{
++numOfTreesLeft; // 前++似乎效率更高
}
}
cout << numOfTreesLeft; // 输出
return 0;
}
输出:
by ALittleS0v1etCAT @ 2023-08-30 21:38:35
@hui_cat 是C++14标准的代码
by junjie_zhao @ 2023-08-30 21:50:05
#include<iostream>
using namespace std;
int main()
{
int l,m,sum=0;
cin>>l>>m;
bool a[l];
for(int i=0;i<=l;i++)
{
a[i]=1;
}
int x,y;
for(int i=0;i<m;i++)
{
cin>>x>>y;
for(int j=x;j<=y;j++)
{
a[j]=0;
}
}
for(int i=0;i<=l;i++)
{
if(a[i])
{
sum++;
}
}
cout<<sum;
return 0;
}
by Withershine @ 2023-08-30 22:00:29
#include <iostream>
using namespace std;
int main()
{
int length,numOfSections; //数组长度,区间个数
cin >> length;
bool* trees = new bool[10005]; // 利用指针声明动态变量
//这里补个等号
for (size_t i = 0; i <= length; i++) // 初始化,全部设为true
{
trees[i] = true;
}
cin >> numOfSections;
for (size_t i = 0; i < numOfSections; i++) // 输入区间部分
{
int startOfSection=0,endOfSection=0; // 开始坐标,结束坐标
cin >> startOfSection;
cin >> endOfSection;
//这里也补个等号
for (size_t j = startOfSection; j <= endOfSection; j++) // 循环将区间内的树设为false
{
trees[j] = false;
}
}
int numOfTreesLeft=0; // 统计剩下的树
//这里也是
for (size_t i = 0; i <= length; i++)
{
if (trees[i]) // 由于数组类型是bool,所以直接利用条件判断累加
{
++numOfTreesLeft; // 前++似乎效率更高
}
}
cout << numOfTreesLeft; // 输出
return 0;
}
by Withershine @ 2023-08-30 22:02:11
原题中树的编号是
by fluhang_ @ 2023-08-31 10:03:47
???
<#include<bits/stdc++.h> using namespace std; long long qw[100000]; int main(){ long long a,s,d,f,g,h=0; cin>>a>>s; for (int i=1;i<=s;i++) { cin>>d>>f;//输入范围 for (int i=d;i<=f;i++) { qw[i]=1;//包含在范围内都等于1 } } for (int i=0;i<=a;i++)//起始值是从0开始的!!! { if (qw[i]==0) h++; } cout<<h;//输出答案······ return 0; }