乔斯编程集训题之打BOSS

AC代码:

#include<bits/stdc++.h>
using namespace std;
int main() {
    stack<int>stk;
    int T, L, HP;
    cin >> T >> L >> HP;
    while(T--) {
        string op;
        cin >> op;
        if (op == "add") {
            int x;
            cin >> x;
            if (stk.size() < L) {
                stk.push(x);
            }
        }
        else {
            if (stk.size()) {
                HP -= stk.top();
                stk.pop();
            }
            if (HP <= 0) {
                cout << "gameover\n";
            }
            else {
                cout << HP << "\n";
            }
        }
    }
    return 0;
}

合格证:

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!要在C++中找出乔斯方阵中所有的单词"qiaosi"并输出,可以使用回溯算法来实现。下面是一个可能的实现: ```cpp #include <iostream> #include <vector> #include <string> using namespace std; vector<string> matrix; // 乔斯方阵 bool isValid(int x, int y) { // 检查坐标是否在方阵范围内 return x >= 0 && x < matrix.size() && y >= 0 && y < matrix.size(); } bool searchWord(int x, int y, int index) { // 达到单词末尾,找到了一个有效的单词 if (index == 6) { return true; } // 检查当前坐标是否合法,以及是否匹配当前字母 if (!isValid(x, y) || matrix[x][y] != "qiaosi"[index]) { return false; } // 标记当前字母已经被访问 char temp = matrix[x][y]; matrix[x][y] = '*'; // 在八个方向上继续搜索 bool found = false; int dx[] = {-1, -1, -1, 0, 0, 1, 1, 1}; int dy[] = {-1, 0, 1, -1, 1, -1, 0, 1}; for (int i = 0; i < 8; i++) { int nx = x + dx[i]; int ny = y + dy[i]; found = searchWord(nx, ny, index + 1); if (found) { break; } } // 恢复当前字母 matrix[x][y] = temp; return found; } void findWords() { for (int i = 0; i < matrix.size(); i++) { for (int j = 0; j < matrix[i].size(); j++) { if (matrix[i][j] == 'q') { if (searchWord(i, j, 0)) { // 输出单词坐标 cout << "qiaosi found at (" << i << ", " << j << ")" << endl; } } } } } int main() { // 假设乔斯方阵已经输入完毕 matrix = { "qiaosi****", "*********", "*********", "*********", "*********", "*********", "*********", "*********" }; findWords(); return 0; } ``` 这段代码会遍历乔斯方阵中的每个字母,如果当前字母是 'q',则进行回溯搜索,判断是否能找到完整的单词"qiaosi"。如果找到了,就输出单词的坐标。方阵中不属于单词的字母会用 "*" 代替。请注意,这只是一个简单的示例,实际应用中可能需要对输入进行合法性检查等处理。希望能帮助到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值