当前位置: 首页 > news >正文

C/C++每日一练19

第一题:小易的升级之路

题目描述:小易初始攻击力为 a,有 n 个怪兽,每个怪兽有防御力 x [i] 和攻击力 y [i]。若小易当前攻击力 > x [i],则击败怪兽后攻击力增加 y [i],否则无法击败。求小易最终的攻击力。算法原理:每次选择防御力最低的怪兽击败,才能最大化攻击力提升。所以先将怪兽按防御力升序排序,然后依次判断能否击败,能击败则累加攻击力,直到无法击败或击败所有怪兽。代码:

cpp

运行

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int n, a; cin >> n >> a; vector<pair<int, int>> monsters(n); for (int i = 0; i < n; ++i) { cin >> monsters[i].first >> monsters[i].second; } sort(monsters.begin(), monsters.end()); for (auto& m : monsters) { if (a > m.first) { a += m.second; } else { break; } } cout << a << endl; return 0; }

第二题:礼物的最大价值

题目描述:m×n 的网格中,每个格子有礼物价值,从左上角出发,每次只能向右或向下移动,求到达右下角的最大礼物价值。算法原理:动态规划。设 dp [i][j] 为到达 (i,j) 的最大价值,转移方程 dp [i][j] = max (dp [i-1][j], dp [i][j-1]) + grid [i][j]。边界:第一行只能从左向右,dp [0][j] = dp [0][j-1] + grid [0][j];第一列只能从上到下,dp [i][0] = dp [i-1][0] + grid [i][0]。可优化为一维数组 dp [j],每次更新时 dp [j] = max (dp [j], dp [j-1]) + grid [i][j]。代码:

cpp

运行

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int m, n; cin >> m >> n; vector<vector<int>> grid(m, vector<int>(n)); for (int i = 0; i < m; ++i) { for (int j = 0; j < n; ++j) { cin >> grid[i][j]; } } vector<int> dp(n, 0); dp[0] = grid[0][0]; for (int j = 1; j < n; ++j) { dp[j] = dp[j-1] + grid[0][j]; } for (int i = 1; i < m; ++i) { dp[0] += grid[i][0]; for (int j = 1; j < n; ++j) { dp[j] = max(dp[j], dp[j-1]) + grid[i][j]; } } cout << dp[n-1] << endl; return 0; }

第三题:对称之美

题目描述:判断一个字符串是否是回文串,即正读和反读都一样,例如 “abcba” 是回文串,“abca” 不是。算法原理:双指针法。左指针从字符串开头,右指针从结尾,依次比较两个指针指向的字符是否相等。若所有对应字符都相等则是回文串,否则不是。代码:

cpp

运行

#include <iostream> #include <string> using namespace std; int main() { string s; cin >> s; int left = 0, right = s.size() - 1; bool is_palindrome = true; while (left < right) { if (s[left] != s[right]) { is_palindrome = false; break; } left++; right--; } cout << << endl; return 0; }
谢谢
http://www.jsqmd.com/news/1341786/

相关文章:

  • 发现植物大战僵尸的隐藏玩法:PVZTools修改器完全指南 [特殊字符][特殊字符]‍♂️
  • AP通过DNS获取AC列表注册典型配置举例
  • 一年级适用练字线上课推荐:【简知科技】贴合低龄 - 晴光转树
  • Amyloid β-protein (1-16) ;DAEFRHDSGYQVHHQK
  • LangGraph火了之后,为什么团队反而更关心维护成本?
  • Go sync.Pool 对象池使用踩坑——GC 频繁触发下的对象物理泄露与内存抖动排查
  • Cursor、Claude Code 和 Codex 如何控制使用成本?从任务拆分到模型选择
  • MOMENT-1-large完整指南:从安装到部署的终极时间序列分析工具
  • 免费IP定位方案:gh_mirrors/ipd/IP_database核心功能详解
  • 解决TMPEffects常见问题:Unity文本动画插件排错与性能优化
  • 嵌入式按键处理:消抖、状态机与组合键设计
  • 2026年金堂电商平台的深耕: 从线上曝光到数据反哺的经营闭环 - 市场沸点
  • 动物森友会岛屿设计终极指南:使用Happy Island Designer打造梦想岛屿
  • 如何在5分钟内快速上手ModernBERT-base?完整安装与基础使用教程
  • 【单片机课程设计/毕业设计】基于 51/STM32 单片机的阈值触发型风扇窗帘联动控制系统 基于 51/STM32 单片机的三模式家居环境智能控制器开发(011502)
  • Codex 接入飞书
  • 暑期学习:自学java第二十二天
  • Google Play冷启动,别再一个人硬扛:GP好评互助群来了
  • 档案库房“十防”监控系统建设方案
  • nguyenvulebinh/wav2vec2-base-vi-vlsp2020部署指南:从Colab到生产环境的无缝迁移方案
  • Git 用法总结
  • granite-timeseries-patchtst训练秘籍:超参数设置与512小时历史数据窗口优化
  • 小程序制作平台有哪些?免代码、模板、商城和预约能力对比
  • MySQL10前瞻:分布式架构与云原生优化
  • 解决YOLO训练中的Docker共享内存不足问题
  • 【AI产品经理】第五章 B端产品实战
  • 通信U/V频段射频端
  • 如何下载与安装LXGW WenKai TC?3分钟快速上手教程
  • 前端转大模型:Demo能跑就敢投简历?权限日志才是真门槛
  • AI Agent应用开发实战指南:从零搭建智能体项目