其他分享
首页 > 其他分享> > 2020-02-02

2020-02-02

作者:互联网

田忌赛马

问题描述】二千多年前的战国时期,齐威王与大将田忌赛马。双方约定每人各出300匹马,并且在上、中、下三个等级中各选一匹进行比赛,由于齐威王每个等级的马都比田忌的马略强,比赛的结果可想而知。现在双方各n匹马,依次派出一匹马进行比赛,每一轮获胜的一方将从输的一方得到200银币,平局则不用出钱,田忌已知所有马的速度值并可以安排出场顺序,问他如何安排比赛获得的银币最多。
输入:输入包含多个测试用例,每个测试用例的第一行正整数n(n≤1000)马的数量,后两行分别是n个整数,表示田忌和齐威王的马的速度值。输入n=0结束。
输出:每个测试用例输出一行,表示田忌获得的最多银币数。
#include

using namespace std;

#define MAX 50

int a[MAX] = { 0,92, 83, 71 }, b[MAX] = { 0, 95, 87, 74 }, c[MAX] = { 0 };
int n=3, sum = 0;

void bfs()
{
for (int i = n; i>=1; i–)//田忌从次等马开始挑选
{
int tempt = 0;//标记
for (int j = 1; j <= n; j++)
{
if (a[i] > b[j]) tempt = 1;
}
if (tempt == 1) sum = sum + 200;
else sum = sum - 200;
}
}

int main()
{
bfs();

cout << sum << endl;

return 0;

}

老鱼不老只是愚 发布了20 篇原创文章 · 获赞 1 · 访问量 464 私信 关注

标签:02,int,MAX,sum,测试用例,2020,tempt,田忌
来源: https://blog.csdn.net/mili12/article/details/104141860