洛谷 P2879 [USACO07JAN]区间统计Tallest Cow

牛客 25044 Tallest Cow

#include<cstdio>
using namespace std;
#define min(a,b) (a<b ? a:b)
bool b[10001][10001];
int a[10002];//差分数组
int main() {
    int highest,highest_pos,R,n;
    scanf("%d%d%d%d",&n,&highest_pos,&highest,&R);
    a[1]=highest;
    for(int x,y,l,r; R--;) {
        scanf("%d%d",&x,&y);
        if (b[x][y] || b[y][x]) continue;//去重
        b[x][y]=b[y][x]=1;
        if (x>y) x^=y^=x^=y;
        a[x+1]--,a[y]++;
    }
    for (int i=2,sum=a[1]; i<=n+1; i++) printf("%d\n",sum),sum+=a[i];//输出差分数组对应的原数组
}

网上讲解很多,在这里就不赘述了qwq