洛谷p2649游戏预言

编程入门 行业动态 更新时间:2024-10-09 06:20:39

洛谷p2649<a href=https://www.elefans.com/category/jswz/34/1770081.html style=游戏预言"/>

洛谷p2649游戏预言

题目:John和朋友们在玩纸牌游戏,他们一共有m个人(包括John)。他们的纸牌比较特殊,一共有n*m张牌,牌号分别为1,2,…,n*m,没有牌号相同的牌。每个人先拿到n张牌,然后,每一轮,每个人出一张牌,谁最大则谁赢得这一轮。现在已知John手中的n张牌,计算他最少能赢得多少轮。

输入:第一行为两个整数m和n,2≤m≤20,1≤n≤50;第二行有n个正整数,表示John手中的n张牌的数值

输出:仅一个整数,表示John最少能赢的次数。

解题思路:因为是最少能赢多少局,所以是由大到小考虑。再根据john的手牌与没有的手牌相比较若有比该手牌大的则做标记,若无这是可以赢的,依次枚举。

案例:

输入#1:2 5 

            1 7 2 10 9

输出#1:2

输入#2:6 11

              62 63 54 66 65 61 57 56 50 53 48

输出#2:4

代码如下:

#include<iostream>
using namespace std;
int main()
{int m,n,card[1001]={0},j[51]={0};cin >> m >> n;for(int i=0;i<n;i++){cin >> j[i];card[j[i]]=1;}int num=0,a=n*m;for(int i=a;i>0;i--){if(card[i]==1){int flag=0;//判断是否能赢for(int j=a;j>i&&flag==0;j--)if(card[j]==0)card[j]=1,flag=1;//枚举,看能否把我现在这张牌压制if(flag==0)num++;//不能,则答案+1}}cout << num << endl;return 0;
}

计算机204 倪

更多推荐

洛谷p2649游戏预言

本文发布于:2024-02-06 03:48:48,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1746332.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:游戏   洛谷

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!