-->
当前位置:首页 > 题库 > 正文内容

程序填空题:求解田忌赛马问题(贪心法)

Luz4年前 (2021-06-19)题库782
齐威王与大将田忌赛马。双方约定每人各出300匹马,并且在上、中、下三个等级中各选一匹进行比赛,由于齐威王每个等级的马都比田忌的马略强,比赛的结果可想而知。现在双方各n匹马,依次派出一匹马进行比赛,每一轮获胜的一方将从输的一方得到200银币,平局则不用出钱,田忌已知所有马的速度值并可以安排出场顺序,问他如何安排比赛获得的银币最多。

```c++
#include 
#include 
using namespace std;
#define MAX 1001
//问题表示
int n;
int a[MAX];
int b[MAX];
//求解结果表示
int ans;
void solve()					//求解算法
{
	sort(a,a+n);				//对a递增排序
	sort(b,b+n);				//对b递增排序
	ans=0;
	int lefta=0,leftb=0;
	int righta=n-1,rightb=n-1;
	while ()		//比赛直到结束
	{
		if (a[righta]>b[rightb])	//田忌最快的马比齐威王最快的马快,两者比赛
		{
			ans+=200;
			;
			;
		}
		else if (a[righta]b[leftb])	//田忌最慢的马比齐威王最慢的马快,两者比赛
			{
				ans+=200;
				;
				;
			}
			else
			{
				if (a[lefta]
答案: 第1空:lefta<=righta 第2空:righta-- 第3空:rightb-- 第4空:lefta++ 第5空:rightb-- 第6空:lefta++ 第7空:leftb++ 第8空:lefta++ 第9空:rightb--


发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。