1 条题解
-
0
运用了差分思想
#include using namespace std; int a[11451411],sum[11451411]; // 定义大小为 11451411 的整型数组 a 和 sum,用于记录区间的起始和结束情况以及每个位置的覆盖次数 int i,j,n,l,r; // 声明整型变量 i、j、n、l、r,用于循环和记录区间的起始和结束位置 int main() { int max = 0; // 用于记录覆盖区间最多的位置数 cin >> n; // 表示区间的个数 for (i = 1; i<=n; i++) // 循环读入 n 个区间的起始和结束位置 { cin >> l >> r; a[l] += 1; //修改 a[r+1] -= 1; // 修改使l-r之间+1 } for (i = 1; i<= 1000000; i++) // 循环遍历所有可能的位置(假设范围为 1 到 1000000) { sum[i] = sum[i-1] + a[i]; // 计算每个奶牛的覆盖次数,累加前面所有奶牛的占位情况 if (sum[i] > max) // 判断当前位置的次数是否超过之前的最大值 { max = sum[i]; // 如果超过,则更新最大值 } } cout << max << "\n"; // 输出覆盖区间最多的位置数 return 0; // 返回程序执行成功的状态 }
信息
- ID
- 2875
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 203
- 已通过
- 69
- 上传者