MT2066 相对马高

简介: MT2066 相对马高

150c6cef49564227b5d915369d3b41c1.jpg

8081a98df77c44ef8919c652617f8270.jpg

f86f7d9565044be59002d5ddb19039b5.jpg

思路:


初始:所有马都高为h

a,b区间内能相互看见,即a,b之间没有高于min(a,b)的马,即差分数组c[a+1]--,c[b]++。

(注意a和b大小关系的判断)


代码:


#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 5e6 + 10;
int n, h, f;
int a, b;
int c[N];
int d[N];
int main()
{
    cin >> n >> h >> f;
    for (int i = 1; i <= f; i++)
    {
        cin >> a >> b;
        if (a == b)
            continue;
        if (a > b)
            swap(a, b);
        c[a + 1]--, c[b]++; // 差分数组c
    }
    d[1] = h;
    cout << d[1] << endl;
    for (int i = 2; i <= n; i++)
    {
        d[i] = d[i - 1] + c[i];
        cout << d[i] << endl;
    }
 
    return 0;
}


相关文章
|
8月前
|
人工智能 BI
|
8月前
|
人工智能 BI
MT3019 异或和的或
MT3019 异或和的或