你一定听过田忌赛马的故事吧?
如果3匹马变成1000匹,齐王仍然让他的马按从优到劣的顺序出赛,田忌可以按任意顺序选择他的赛马出赛。赢一局,田忌可以得到200两银子,输一局,田忌就要输掉200两银子,平局的话不输不赢。 请问田忌最多能赢多少银子?
关于输入:
输入包含多组测试数据,每组测试数据的第一行是一个整数n(1<=n<=1000),表示田忌和齐王都拥有n匹马。接下来一行是n个整数,表示田忌的马的速度,下一行也是n个整数,表示齐王的马的速度。 输入的最后以一个0表示结束。
关于输出:
对每组数据,输出一个整数,表示田忌至多可以赢多少银子,如果田忌赢不了,就输出一个负数,表示田忌最少要输多少银子。
//
// main.m
// tanxin
//
// Created by zhangmingwei on 13-1-11.
// Copyright (c) 2013年 zhangmingwei. All rights reserved.
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
//求a中有多少比b中好的。如果a好于b则a加1分,相等分数为0 ,坏于b则减1分。因为如果相等的话,为了分数更多,也应该让这次分数为0
int b[10]={1,3,4,5,7,8,9,34,56,77};
int a[10]={2,2,6,7,7,9,11,22,44,56};
// int b[4]={4,7,9,12};
// int a[4]={3,6,8,9};
int m=0;//a的分数
int j=0;
int count1,count2;
count1=count2=10;
for (int i=0; i<count1;) {
if (a[i]>b[j]) {
m++;
i++;
j++;
}
else if (a[count1-1]>b[count2-1]) {
m++;
count1--;
count2--;
}
else{
m--;
i++;
count2--;
}
}
NSLog(@"a的得分为====%d",m);
}
return 0;
}
分享到:
相关推荐
在这个C语言解法中,我们可以推测程序文件“旅行商.cpp”包含了实现TSP算法的核心代码。C语言是一种通用的、面向过程的编程语言,适用于编写高效、低级别的系统软件和应用软件。在处理这类计算密集型问题时,C语言的...
C语言因其底层特性,常被用于实现这些复杂的数据结构和算法,使得理解更加直观,性能更优。这本书的第二版提供了深入的理论讲解和实践应用,其课后习题旨在帮助读者巩固理解和提高编程技能。 本压缩包包含的“课后...
本文首先对最优服务次序问题进行了分析,然后给出了该问题的贪心解法,最后对所提出算法的时间复杂度进行了分析。 贪心算法的基本思想是通过一系列局部最优选择来获得整体最优解。在解决问题时,它总是选择当前最优...
然而,部分背包问题的贪心解法并不总是最优的,有时需要结合动态规划来确保全局最优解。 在提供的压缩包文件中,包含了0-1背包问题的动态规划算法源代码,以及部分背包问题的贪心算法和动态规划算法的源代码。这些...
- 动态规划:讲解背包问题、最长公共子序列、最短路径等问题的动态规划解法。 - 回溯法:用于解决组合优化问题,如八皇后问题、数独求解。 10. **CH20:其他算法** - 贪心算法:局部最优解策略在某些问题中的...
2. **算法设计**:在“3辆车装货”问题中,可能需要应用排序算法(如快速排序、归并排序)来对货物按重量或体积排序,或者使用贪心算法或动态规划策略来确定最优装载顺序。 3. **逻辑思维与问题建模**:首先需要将...
在C语言中,非递归解法可以通过迭代和回溯的方式来实现。如给出的代码所示,我们可以使用一个一维数组p来记录每行皇后的列位置。数组的大小为n,其中p[k]表示第k+1行的皇后所在列。 首先,我们初始化数组p,将所有...
这个算法虽然不是最优的(存在更高效的贪心算法解法,但无法保证全局最优),但对于大多数情况来说已经足够高效。 总之,“0-1-knapsack-problem-master (252)c.zip”中的内容可能是一个用C语言实现的0-1背包问题...
书中的1-12章涵盖了基础和高级的数据结构和算法主题,包括线性结构、树结构、图结构、排序算法、查找算法、递归与分治策略、贪心算法和动态规划等。课后答案详尽地解释了这些问题的解法,有助于学习者深入理解每个...
- **解法**: 使用动态规划或贪心策略。 - **时间复杂度**: O(n*m)。 - **空间复杂度**: O(n*m)。 **示例代码**: ```c #include #define N 5 #define M 5 int grid[N][M]; void changeColor(int rowOrCol, int ...
5. **动态规划**:书中可能会包含背包问题、最长公共子序列、最短路径等问题的动态规划解法,这是一种优化问题求解的方法,通过构建状态转移方程逐步求解最优解。 6. **贪心算法**:解决一些局部最优选择能导致全局...
### ACM/ICPC算法大全(C语言)知识点概览 #### 图论(Graph Theory) - **DAG的深度优先搜索标记** - DAG(有向无环图)中的深度优先搜索(Depth-First Search, DFS)是一种重要的遍历算法,用于检测图中的环、计算...
- 如果物品的重量和价值都是非负整数,可以使用贪心策略对物品按价值/重量比例进行排序,先考虑性价比高的物品。 - 另外,可以通过滚动数组减少空间复杂度,只保留两行数据,但需要额外的逻辑来处理。 6. **实际...
1. **DOS解法**:在DOS环境下,程序通常使用C语言编写,通过控制台输入输出。在解决背包问题时,首先读取物品的重量和价值,然后按照贪心策略计算并输出结果。程序流程可能包括读取数据、计算性价比、按性价比排序、...
解决TSP的方法多样,常见的有贪心算法、动态规划、遗传算法等。C语言实现TSP可以加深对图论和搜索算法的理解。 3. **八皇后问题**:该问题是要求在8×8的棋盘上摆放8个皇后,使得任意两个皇后都无法互相攻击(即不...
3. **动态规划解法**: - 动态规划是解决背包问题的经典方法,通过构建二维数组来存储子问题的解,避免了重复计算,提高了效率。 - 在C语言代码中,通常使用二维数组dp,通过两层循环实现状态转移,最后得到dp数组...
4. **近似算法**:对于大规模问题,精确解可能过于耗时,因此可以采用贪心策略或遗传算法等近似方法求解,虽然无法保证得到最优解,但通常能获得较优解。 5. **扩展应用**:0-1背包问题有多种变种,如完全背包问题...
这些案例涵盖了数组、链表、树、图、递归、动态规划、贪心算法、回溯法、分治法等多个方面,能够帮助学习者巩固基础知识和提高编程能力。 一、河内塔问题(Towers of Hanoi) 河内塔问题是法国数学家Edouard Lucas...
这个源代码可能包括定义问题状态、过渡规则、解决策略(如递归、回溯、贪心算法等)以及可能的优化技巧。 综合以上信息,我们可以预想这个压缩包会教导读者如何利用C语言编写一个程序,该程序能够模拟商人过河的...