1 条题解
-
1
新手差分题 题目大意:k个操作,每次一个区间,区间中每个元素加1,最后输出中位数 思路:利用差分O(1)修改,最后查询。
#include<bits/stdc++.h> #define int long long #define void inline void using namespace std; int a[1000010],c[1000010]; signed main(){ int n,k; cin>>n>>k; while(k--){ int l,r; cin>>l>>r; c[l]++; c[r+1]--; } for(int i=1;i<=n;i++){ a[i]=+a[i-1]+c[i]; } sort(a+1,a+n+1); int mid=(1+n)/2; cout<<a[mid]; return 0; }
- 1
信息
- ID
- 79
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- (无)
- 递交数
- 29
- 已通过
- 15
- 上传者