九月月赛 T3 题解

· · 题解

题目要求维护每一天的愉悦值,同时模拟赛对愉悦值的影响与奇偶性有关。因此我们维护变量 hval 表示当前愉悦值,cnt 表示当前模拟赛场次数。

对于每一天:

#include <bits/stdc++.h>
using namespace std;
int d, hval, cnt;

int main() {
    cin >> d;
    while (d--) {
        int op;
        cin >> op;
        if (op == 0) hval += 100;
        else if (op == 1) {
            ++cnt;
            if (cnt % 2 == 1) hval += 50;
            else hval -= 30;
        }
        cout << hval << endl;
    }
    return 0;
}

fun fact:由于每次 hval 减少 30 之前,一定发生了一次 hval 增加 50 的事件,所以小 S 的愉悦值总是非负的。