当前位置: 首页 > 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.gsyq.cn/news/73561.html

相关文章:

  • 49
  • 小游戏联机服务开发实践:从零构建房间匹配与帧同步系统
  • PbootCMS登录失败:数据库目录写入权限不足!
  • pbootcms后台公司信息的内容如何调用到前台页面上
  • Day56(26)-F:\vs_ai_work\vue-tlias-management\vue-tlias-management\src\views\layout\index.vue
  • AI Agent 设计原则与最佳实践
  • 深入解析:HiTooler File Finder: macOS上速度碾压Spotlight,媲美Windows上「Everything」的文件搜索神器
  • 2025年高倍率应急启动电源生产厂家推荐与联系指
  • 错过
  • 12.5
  • 2025年迈腾更换轮胎推荐:十大轮胎品牌官方指南
  • java-pta-代码
  • 帝国cms升级时提示Table ***_enewsdtuserpage already exists
  • chroot使用
  • 街头徒手健身1引体向上
  • 2025年比亚迪唐更换轮胎推荐:最新轮胎评测深度报告
  • 第二章 硬件架构
  • 智能体与企业转型:为什么AgenticHub是关键工具
  • 前端交互基石:Vue 与 Ajax 的高效协作(12.5)
  • 2025年中国铝氧化着色定制品牌五大推荐:看哪家技术实力强?
  • ZR2024 数据结构
  • 2025年奔驰E级更换轮胎推荐:专业轮胎选择官方攻略
  • 2025年LED公司专业供应商有哪些?
  • 2025年修补防水涂料供应商排行榜:盘点十大专业厂家!
  • 从测试小白到高手:JUnit 5 核心注解 @BeforeEach 与 @AfterEach 的实战指南 - 教程
  • 多线程?就是Redis单线程还
  • 2025螺旋输送机设备品牌TOP5权威推荐:新深度测评指南,
  • 挖矿病毒分析
  • 2025年度气力输送系统制造企业TOP5权威推荐:甄选企业助
  • 以油养肤沐浴油哪个效果好?2025排行榜前十名沐浴油品牌公布!帮你高效修护肌底