2026/1/9 14:23:29
网站建设
项目流程
想自己在家做外贸网站,稳稳在哪个网站做的消防直播,域名指向国外服务器做网站,提升审美网站题目描述
中国古代的历史故事“田忌赛马”是为大家所熟知的。话说齐王和田忌又要赛马了#xff0c;他们各派出N匹马#xff0c;每场比赛#xff0c;输的一方将要给赢的一方200两黄金#xff0c;如果是平局的话#xff0c;双方都不必拿出钱。现在每匹马的速度值是固定而且已…题目描述中国古代的历史故事“田忌赛马”是为大家所熟知的。话说齐王和田忌又要赛马了他们各派出N匹马每场比赛输的一方将要给赢的一方200两黄金如果是平局的话双方都不必拿出钱。现在每匹马的速度值是固定而且已知的而齐王出马也不管田忌的出马顺序。请问田忌该如何安排自己的马去对抗齐王的马才能赢取最多的钱输入格式第一行为一个正整数n (n 1000) 表示双方马的数量。 第二行有N个整数表示田忌的马的速度。 第三行的N个整数为齐王的马的速度。输出格式仅有一行为田忌赛马可能赢得的最多的钱结果有可能为负。输入样例392 83 7195 87 74输出样例200以下是我的代码#include stdio.h #include math.h //引入函数使用冒泡排序法将马的数量从慢到快排序 void pai(int a[], int n) { for (int i 0; i n - 1; i) { for (int j 0; j n - 1 - i; j) { if (a[j] a[j 1]) { int t a[j]; a[j] a[j 1]; a[j 1] t; } } } } int main() { int n; scanf(%d, n); int t[10001]; int q[10001]; for (int i 0; i n; i) { scanf(%d, t[i]); } pai(t, n); for (int i 0; i n; i) { scanf(%d, q[i]); } pai(q, n); int tslow 0;//田忌最慢马的索引 int qslow 0;//齐王最慢马的索引 int tfast n-1;//田忌最快马的索引 int qfast n-1;//齐王最快马的索引 int s 0; for (int i 0; i n; i) { //先将田忌最快的马和齐王最快的马比 if (t[tfast] q[qfast]) { s 200; tfast--; qfast--; } //快马比不过就看田忌慢马是否大于齐王慢马 else if (t[tslow] q[qslow]) { s 200; tslow; qslow; } //如果都比不过就用田忌最慢的马去和齐王最快的马去比 else if (t[tslow] q[qfast]) { s - 200; tslow; qfast--; } //处理平局 else { tslow; qfast--; } } printf(%d,s); return 0; }用这种方法能最终得出使田忌赢得最多或者亏的最少的情况 。