Luogu P2879 [USACO07JAN]Tallest Cow S
题面


分析
区间内每一个数(不包括端点)要小于端点
所以差分
但要排除相同的区间
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
struct A{int a,b; }a[N];
bool cmp(A i,A j) {
return i.a<j.a||i.a==j.a&&i.b<j.b;
}
int b[N],n,e,h,m;
int main() {
scanf("%d%d%d%d",&n,&e,&h,&m);
for(int i=1;i<=m;i++) {
scanf("%d%d",&a[i].a,&a[i].b);
if(a[i].a>a[i].b) swap(a[i].a,a[i].b);
}
sort(a+1,a+m+1,cmp); int l=1,s=0;
for(int i=1;i<=n;i++) {
while(l<=m&&a[l].a<i) {
s++,b[a[l].b]++,l++;
while(l<=m&&a[l].a==a[l-1].a&&a[l].b==a[l-1].b) l++;
}
s-=b[i];
printf("%d\n",h-s);
}
return 0;
}

浙公网安备 33010602011771号