差分入门两题 —— ACwing101 最高的牛
1.提示给出 关系可能重复 故需要引入Hash判重
2.对于给定关系<a,b> 显然我们可以把 a+1 ~b-1 的牛整体减一来达到 ,所以这里可以利用到差分关系 ,最后利用差分的前缀和即实际高度即可
unordered_map<int, int> mp; int c[maxn]; int main() { int n, p, h, m; int a, b; scanf("%d%d%d%d", &n, &p, &h, &m); for (int i = 0; i < m; i++) { scanf("%d%d", &a, &b); if (a > b) swap(a, b); if (mp[a] != b) { mp[a] = b; c[a+1]--, c[b]++; } } c[0] = h; for (int i = 1; i <= n; i++) { c[i] += c[i - 1]; printf("%d\n", c[i]); } }