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

贪心算法之: 田忌赛马

贪心算法:

1、 电池寿命 http://bailian.openjudge.cn/practice/3468

2、 建立雷达 http://bailian.openjudge.cn/practice/1328

3、 田忌赛马 http://bailian.openjudge.cn/practice/2287

“田忌赛马(Tian Ji — The Horse Racing)” 最优贪心算法 + 完整 C++ 代码

这个问题是典型的:

双指针 + 排序 + 贪心策略


🧠 题解思路(核心贪心策略)

田忌想最大化自己的收益(每赢一局 +200,每输一局 −200)。

将两人马匹速度都排序(从大到小):

  • t[i] = 田忌的马(降序)
  • k[j] = 国王的马(降序)

用三个指针:

指针 含义
tl 田忌最慢马的左指针(开始处)
tr 田忌最快马的右指针(末尾)
kl 国王最慢马
kr 国王最快马

贪心策略(最优策略)

对每一轮比较:

1. 如果田忌最快马 > 国王最快马

→ 直接赢!
tr--, kr--
收益 +200


2. 如果田忌最慢马 > 国王最慢马

→ 让慢马赢慢马
tl++, kl++
收益 +200


3. 否则田忌当前最慢马 < 国王最快马

→ 只能牺牲最慢马
tl++, kr--
收益 -200


该策略即官方题解的最优策略,在所有情况下都能保证最大收益。


完整 C++ 代码

#include <bits/stdc++.h>
using namespace std;int main() { int n;while (cin >> n && n) {vector<int> t(n), k(n);for (int i = 0; i < n; i++) cin >> t[i];for (int i = 0; i < n; i++) cin >> k[i];sort(t.begin(), t.end(), greater<int>());sort(k.begin(), k.end(), greater<int>());int tl = 0, tr = n - 1;int kl = 0, kr = n - 1;int score = 0;while (tl <= tr) {if (t[tl] > k[kl]) {// 田忌最快 > 国王最快 → 赢score += 200;tl++;kl++;} else if (t[tr] > k[kr]) {// 田忌最慢 > 国王最慢 → 也赢score += 200;tr--;kr--;} else {// 不管怎样都赢不了 → 牺牲最慢马if (t[tr] < k[kl])score -= 200;  // 输tr--;kl++;}}cout << score << "\n";}return 0;
}

📌 样例测试

输入:

3
92 83 71
95 87 74
2
20 20
20 20
2
20 19
22 18
0

输出:

200
0
0
http://www.jsqmd.com/news/63003/

相关文章:

  • 49
  • laya给自己画边框
  • 小游戏联机服务开发实践:从零构建房间匹配与帧同步系统
  • 接口
  • Object类
  • Владимир
  • HTML--------------动态列表
  • VSCode使用Jupyter完整指南配备机器学习环境
  • PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
  • PbootCMS登录失败:数据库目录写入权限不足!
  • 为了让 EEG 模型对不同人、不同时间都准确,要做到:
  • 二十四宿想象气功
  • 京剧:金玉奴【定场诗】
  • pbootcms后台公司信息的内容如何调用到前台页面上
  • 2025.12.5博客
  • 2025.12.5博客
  • 南京大学 AI 导论 Cart-Pole V1 游戏(强化学习)
  • Korean
  • Day56(26)-F:\vs_ai_work\vue-tlias-management\vue-tlias-management\src\views\layout\index.vue
  • AI Agent 设计原则与最佳实践
  • 全网热议!2025年重庆全屋定制厂家销量推荐榜单
  • 深入解析:HiTooler File Finder: macOS上速度碾压Spotlight,媲美Windows上「Everything」的文件搜索神器
  • Andrew Ng 亲授:Machine Learning Yearning 中文版项目成功要素 - 指南
  • 详细介绍:小杰-大模型(twelve)——大模型部署与应用——gradipo-实现UI界面
  • 2025年高倍率应急启动电源生产厂家推荐与联系指
  • 必看!2025年值得信赖的文创产品定制制造厂家推荐
  • 错过
  • 12.2
  • 12.3
  • 12.5