《零基础入门学习C语言视频+课件+源代码课程》
课程摘录:
B题:
题目描述:田忌赛马,输入第一行为马匹数量,后面输入依次是田忌马战斗力与齐王马战斗力(战斗力高的马一定能赢战斗力低的马),赛马赌资赢一场200,输一场-200,平局不加不减,输出田忌最后的赢或输的钱。
思路方法:此题用贪心算法,能赢一场是一场的思路,先将田忌与齐王马按战斗力从高到低排序,比较最强的马,如果不能战胜齐王最强马,用田忌最弱的马去赌,然后继续比较;如果可以战胜,则战胜齐王最强马,然后次强马向后比较;如果是平手,则看最弱的马,如果最弱的马可以战胜齐王最弱的马,则用最弱马与齐王最弱马比较,若不行,则以最弱的马和齐王此时最强的马比较。
代码:
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int cmp(int a,int b)
{
return a > b;
}
void Frighting()
{
int n, t[1010], q[1010], st, sq, win, endt, endq, i;
while(scanf("%d",&n)!=EOF)
{
if(n == 0)
break;
for(i = 0; i < n; i++)
{
scanf("%d", &t[i]);
}
for(i = 0; i < n; i++)
{
scanf("%d", &q[i]);
}
win = 0;
st = sq = 0;
endt = endq = n - 1;
sort(t, t+n, cmp);
sort(q, q+n, cmp);
while(st <= endt)
{
if(t[st] > q[sq])
{
st++;
sq++;
win++;
}
else if(t[st] < q[sq])
{
sq++;
endt--;
win--;
}
else
{
if(t[endt] > q[endq])
{
endt--;
endq--;
win++;
}
else if(t[st] == t[endt])
{
break;
}
else
{
endt--;
sq++;
win--;
}
}
}
printf("%d\n", win * 200);
}
}
int main()
{
Frighting();
return 0;
}
课程目录:
零基础入门学习C语言课件+源代码\第八章 指针(课件).rar
零基础入门学习C语言课件+源代码\第八章 指针(源代码).rar
零基础入门学习C语言课件+源代码\第二章 数据类型,运算符和表达式(课件).rar
零基础入门学习C语言课件+源代码\第九章 预处理(课件).rar
零基础入门学习C语言课件+源代码\第九章 预处理(源代码).rar
零基础入门学习C语言课件+源代码\第六章 数组(课件+源代码).rar
零基础入门学习C语言课件+源代码\第七章 函数(课件).rar
零基础入门学习C语言课件+源代码\第七章 函数(源代码).rar
零基础入门学习C语言课件+源代码\第三章 顺序程序设计(课件).rar
零基础入门学习C语言课件+源代码\第十二章 位运算(课件).rar
零基础入门学习C语言课件+源代码\第十二章 位运算(源代码).rar
零基础入门学习C语言课件+源代码\第十一章 文件操作(课件).rar
零基础入门学习C语言课件+源代码\第十一章 文件操作(源代码).rar
零基础入门学习C语言课件+源代码\第十章 结构体与共用体(课件).rar
零基础入门学习C语言课件+源代码\第十章 结构体与共用体(源代码).rar
零基础入门学习C语言课件+源代码\第四章 分支结构程序(课件).rar
零基础入门学习C语言课件+源代码\第五章 循环控制结构程序(课件).rar
零基础入门学习C语言课件+源代码\第一章 C语言概述以及如何上机运行C(课件).rar
课程大小:
3.03G