和田忌赛马那道类似谈心题
田忌赛马链接:
http://blog.youkuaiyun.com/better_space/article/details/52013256
#include<stdio.h>
#include<algorithm>
using namespace std;
const int N = 55;
int my[N];
int yo[N];
int main() {
int T;
int p=0;
scanf("%d",&T);
while(T--) {
int n;
scanf("%d",&n);
for(int l=0; l<n; l++)
scanf("%d",&my[l]);
for(int l=0; l<n; l++)
scanf("%d",&yo[l]);
sort(my,my+n);
sort(yo,yo+n);
int sum=0;
int my_max=n-1,my_min=0;
int yo_max=n-1,yo_min=0;
while(my_max>=my_min) {
if(my[my_max]>yo[yo_max]) {
sum+=2;
my_max--,yo_max--;
} else if(my[my_min]>yo[yo_min]) {
sum+=2;
my_min++,yo_min++;
} else {
if(my[my_min]==yo[yo_max])
sum++;
my_min++,yo_max--;
}
}
printf("Case %d: %d\n",++p,sum);
}
return 0;
}
本文通过田忌赛马的经典问题介绍了如何使用算法来找出最优的比赛策略。通过对双方马匹速度进行排序,并采用贪心算法匹配,实现了比赛胜率的最大化。文章提供了完整的C语言实现代码。
2682

被折叠的 条评论
为什么被折叠?



