酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

C++ 实现计算多轮攻击后破碎护盾数量

以下是使用 C++ 实现的代码: ```cpp #include <iostream> #include <vector> using namespace std; int main() { int n, m, t; // 输入护盾个数 n、攻击组数 m 和护盾可承受的最大伤害数 t cin >> n >> m >> t; // 初始化每个护盾的伤害值为 0 vector<int> shields(n + 1, 0); for (int i = 0; i < m; i++) { int L, R, s; // 输入每轮攻击的起始护盾编号 L、结束护盾编号 R 和攻击伤害点数 s cin >> L >> R >> s; // 对编号从 L 到 R 的护盾加上攻击伤害 for (int j = L; j <= R; j++) { shields[j] += s; } } int brokenShields = 0; // 统计破碎的护盾数量 for (int i = 1; i <= n; i++) { if (shields[i] > t) { brokenShields++; } } // 输出破碎的护盾数量 cout << brokenShields << endl; return 0; } ``` ### 代码解释: 1. **输入处理**:首先读取护盾个数 `n`、攻击组数 `m` 和护盾可承受的最大伤害数 `t`。 2. **护盾伤害值初始化**:使用 `vector` 存储每个护盾的伤害值,初始值都为 0。 3. **攻击处理**:对于每一轮攻击,读取攻击的起始护盾编号 `L`、结束护盾编号 `R` 和攻击伤害点数 `s`,并将编号从 `L` 到 `R` 的护盾的伤害值加上 `s`。 4. **统计破碎护盾数量**:遍历所有护盾,统计伤害值大于 `t` 的护盾数量。 5. **输出结果**:输出破碎的护盾数量。 ######[AI问答 | 478点数解答 | 2026-06-13 20:47:37]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]