题N: Suppose there are M people, including you, playing a special card game. At the beginning, each player receives N cards. The pip of a card is a positive integer which is at most N*M. And there are no two cards with the same pip. During a round, each player chooses one card to compare with others. The player whose card with the biggest pip wins the round, and then the next round begins. After N rounds, when all the cards of each player have been chosen, the player who has won the most rounds is the winner of the game.
Given your cards received at the beginning, write a program to tell the maximal number of rounds that you may at least win during the whole game. Input The input consists of several test cases. The first line of each case contains two integers m (2?20) and n (1?50), representing the number of players and the number of cards each player receives at the beginning of the game, respectively. This followed by a line with n positive integers, representing the pips of cards you received at the beginning. Then a blank line follows to separate the cases.
The input is terminated by a line with two zeros. Output For each test case, output a line consisting of the test case number followed by the number of rounds you will at least win during the game.
Sample Input 2 5 1 7 2 10 9
6 11 62 63 54 66 65 61 57 56 50 53 48
0 0 Sample Output Case 1: 2 Case 2: 4
题意: 卡牌游戏,最大的牌为M*N,M为人数,N为每个人收到的卡牌数。每轮牌最大的人赢,问这个人最少赢几场。
思路:
- 要求是最少赢多少场,每轮胜者所用最大的牌赢。2.
- 例如第一组数据中,9和10肯定会赢,但是7如果碰到8就输了;如果8没有在10和9所赢场次中被消耗掉,那么他最多只能赢2场。
- 自然想到可以根据所得牌数大小进行降序排列。再将N*M遍历下来,过程中如果相等,则肯定赢一场,若不相等,要注意自己所出的最大牌被消耗掉,N乘M遍历下来的那个数也要消失,一下损失两个数
- 一个变量控制N*M每轮递减的值,一个变量控制自己手中的牌数。当手中的牌不等于该轮最大值时,令m=0累计加1,同时让自己手中的牌假设不参与下一轮,直到再次相等,m再递减1。直到m=0时才能继续赢
代码:
#include
#include
#include
#include
int a[55];
bool cmp(int a,int b)
{
return a>b;
}
using namespace std;
int main()
{
int m,n;
int b=1;
while(cin>>m>>n&&m!=0&&n!=0)
{
memset(a,0,sizeof(0));
int sum=0;
for(int i=0;i>a[i];
}
int s=m*n;
sort(a,a+n,cmp);
int ans=0,g=0;
for(int j=s;j>=1&&g
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?