0
点赞
收藏
分享

微信扫一扫

P5006 [yLOI2018] 大美江湖

九点韶留学 2022-01-13 阅读 46

一道完全没有坑点难点的纯模拟,除了题面看起来挺长的,题意也很简单,看了洛谷的题解很多用了oop,很长

#include <bits/stdc++.h>

#define fi first
#define se second
#define pb push_back
#define mk make_pair
#define sz(x) ((int) (x).size())
#define all(x) (x).begin(), (x).end()

using namespace std;

typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> pa;

const int N = 105;

int dx[4] = {0, 0, -1, 1};
int dy[4] = {-1, 1, 0, 0};

int main() {
    int n, m;
    cin >> n >> m;
    string s[N];
    for (int i = 0; i < n; i++) cin >> s[i];
    int hp0, st0, de0;
    cin >> hp0 >> st0 >> de0;
    int x, y;
    cin >> x >> y;
    x--; y--;
    int st, de;
    cin >> st >> de;
    int q;
    cin >> q;
    int hp = 0;
    while (q--) {
        int op;
        cin >> op;
        if (op == 1) {
            cout << hp << " " << st << " " << de << endl;
        } else {
            int d;
            cin >> d;
            x += dx[d - 1];
            y += dy[d - 1];
            if (s[x][y] == 'R') hp = max(hp - 10, 0);
            else if (s[x][y] == 'Q') st += 5;
            else if (s[x][y] == 'Y') de += 5;
            else if (s[x][y] == 'M') hp += max(1, (int) ceil(hp0 * 1.0 / max(1, st - de0)) * max(1, st0 - de));
        }
    }
    return 0;
}
举报

相关推荐

0 条评论