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;
}
posted @ 2020-11-15 21:13  wwwsfff  阅读(82)  评论(0)    收藏  举报