1 条题解

  • 0
    @ 2025-3-23 11:42:50
    • 考虑差分
    • 每一次翻面,将翻转区间的所有数据 +1
    • 由于起始是反面,翻转次数为0偶数
    • 所以翻转奇数次为正面
    #include <iostream>
    #include <vector>
    using namespace std;
    
    int main() {
        int n, m;
        cin >> n >> m;
        vector<int> d(n + 1, 0);
        for (int i = 1; i <= m; i++) {
            int x, y;
            cin >> x >> y;
            d[x]++;
            d[y + 1]--;  
        }
        int ans = 0;
        for (int i = 1; i <= n; i++) {
    		d[i] += d[i-1];
    		ans += d[i] % 2; // 奇数表示正面 
        }
        cout << ans << endl;
        return 0;
    }
    
    • 1

    信息

    ID
    330
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    500
    已通过
    125
    上传者