题意:一次card比赛,有m个参赛者(包括你),每个参赛者有n张卡片。每张卡片的编号都不一样。每一轮,所有参赛者都打出一张卡片,编号最大的赢。问你至少能赢几局。
思路:简单贪心
代码如下:
#include<iostream>
using namespace std;
const int mMax = 22;
const int nMax = 52;
struct data
{
int num;
bool my;
bool small;
}card[mMax * nMax];
int main()
{
int m , n, i, j, t = 1;
while(cin >> m >> n && m != 0)
{
for(i = 1; i <= m * n; i ++)
{
card[i].num = i;
card[i].my = false;
card[i].small = false;
}//初始化,给每个card
for(i = 1; i <= n; i ++)
{
int number;
cin >> number;
card[number].my = true;
}//初始化自己的卡片
getchar();
getchar();//按照题目要求
int ans = n;
for(i = m * n; i >= 2 && ans > 0; i --)
if(!card[i].my)
for(j = i - 1; j >= 1; j --)
if(card[j].my && !card[j].small)
{
card[j].small = true;
ans--;
break;
}
cout << "Case " << t++ << ": " << ans << endl;
}
return 0;
}
分享到:
相关推荐
* 贪心:贪心算法是指通过选择当前最优的解来解决问题的方法,如 poj1328、poj2109、poj2586。 * 递归和分治法:递归和分治法是指将问题分解成多个小问题,通过解决小问题来解决大问题,如 poj3295。 * 递推:递推是...
贪心算法是一种在每一步选择中都采取当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。在POJ 2287题中,我们需要通过贪心策略来解决赛马比赛的胜负问题。 首先,我们来看一下题目...
以上五个题目涵盖了图论、动态规划、回溯法、数论和贪心算法等多个算法领域,对于提高编程竞赛的解题能力和算法思维具有很大帮助。解题时,理解题意、选择合适的算法模型以及优化代码性能都是至关重要的步骤。通过...
在这个实验报告中,poj1087 题目就是一个典型的贪心算法应用实例。 题目描述了一个工厂需要将不同尺寸的产品(1*1 到 6*6)使用6*6的包裹进行包装,目标是最小化所需的包裹数量。贪心策略在此问题中的应用是逐个...
通过阅读和分析这些题解,学习者能够接触到动态规划、图论、贪心算法、分治策略、回溯法、搜索算法等多种算法,并提升自己的编程和问题解决能力。同时,这些解题思路和代码实现也能帮助学习者在遇到类似问题时迅速...
3. **贪心算法**:通过局部最优选择来达到全局最优解的方法,如背包问题(poj3295)。 4. **动态规划**:通过分解问题为更小的子问题来解决复杂问题,如斐波那契数列(poj1068, poj2632, poj1573, poj2993, poj2996...
5. **贪心算法**:对于一些局部最优的选择可以导致全局最优解的问题,如霍夫曼编码、Prim算法和Kruskal算法等。 6. **图论算法**:包括图的遍历(深度优先搜索和广度优先搜索)、最短路径问题(Dijkstra算法、Floyd...
标题“POJ 1129-Channel Allocation”的问题是一个典型的图论问题,涉及到贪心算法和图的m着色问题。在这个问题中,我们假设有一个通信网络,其中的节点代表基站,每个基站需要分配一个频道来传输信号,而两个相邻的...
Dijkstra 算法是一种用于求解单源最短路径问题的贪心算法,适用于无负权边的加权图。 **示例题目编号:** - 1022, 1111, 1118, 1129, 1190, 1562, 1564, 1573, 1655, 2184, 2225, 2243, 2312, 2362, 2378, 2386 **...
此外,还有一些其他类型的题目,如图论、搜索、贪心算法等。在POJ中,可以通过题目分类找到更多相应类型的题目进行训练,以提高编程和算法能力。例如,1014、1147、1618等题目被归类为短代码,而1009、1010、1015、...
贪心算法是一种局部最优解策略,每次选择当前状态下看似最优的选择,以期望最终达到全局最优解。例如,poj1328和poj2109就是典型的贪心问题。贪心算法的关键在于正确性证明,确保每一步的局部最优能够导向全局最优。...
这道题目是关于利用贪心算法解决一个木棍处理问题的。贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。在本题中,我们的目标是最小化处理...
* 贪心算法:通过选择当前最优的解决方案来解决问题,例如 poj1328、poj2109、poj2586。 * 递归和分治法:通过将问题拆分成小问题来解决,例如 poj3295。 * 递推法:通过逐步解决问题来获得最终解,例如 poj1068...
- 贪心算法:在每一步选择中都采取在当前状态下最好或最优的选择,如`poj1328, poj2109, poj2586`。 - 分治法:将一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,如`poj...
例如,POJ1753和POJ2965是枚举算法的经典例题,而POJ1328、POJ2109和POJ2586则是贪心算法的代表题。 图算法部分涵盖了图的深度优先遍历和广度优先遍历、最短路径算法、最小生成树算法、拓扑排序和二分图的最大匹配...
在“算法实验(贪心策略 17-20题)1”中,我们关注的是“poj 1042 钓鱼”问题,这是一道典型的贪心算法应用实例。该问题的背景是John计划去钓鱼,他有h小时的时间(1 ),并且有n个湖泊(2 )可以通过单向道路相连。...
1. 算法分类:POJ题目可以根据算法的难度和类型进行分类,例如,动态规划、贪心算法、递归算法等。 2. 题目分类:POJ题目可以根据题目类型进行分类,例如,数学题、字符串处理题、图算法题等。 3. 代码长度分类:POJ...
4. 贪心算法:通过每一步选择局部最优解,逐步达到全局最优解。 5. 字符串处理:KMP算法、Rabin-Karp算法等,对于字符串匹配问题至关重要。 6. 数组与链表:数据结构基础,理解和熟练操作数组和链表是解决算法问题的...
- **解释**:贪心算法是一种在每一步选择中都采取当前看起来最优的选择策略,以期望最终达到全局最优解的方法。 #### 5. 图论算法 ##### (1) 图的基本操作 - **例题**:未列出具体题目 - **解释**:图的基本操作...
* 贪心算法:贪心算法是指在每一步选择当前最优解,以期获得最优的总体解。例题:poj1328、poj2109、poj2586。 * 递归和分治法:递归和分治法是指将问题分解成更小的子问题,递归地解决这些子问题,然后将结果组合...