NightStriker 2022-03-19 14:14 采纳率: 60%
浏览 98
已结题

拉大车(C++,求思路)

题目描述:
进行游戏时 每个人分一叠牌 不许看牌 按顺序每人一次出一张牌 后出的压住前面出的 谁出的牌和前面出的一样 可以将这两张相同的牌和被它们夹在中间的牌收走 然后由收牌的人再出一张 继续上面的过程。
A B 两个小朋友玩拉大车 A 先出 谁收到的牌多 算谁赢 给出牌的总数量  以及轮流抽出的每张牌的编号 问最终两人的得分。

输入
第1行:1个数字 n 表示牌的数量(2 <= n <= 100000)
第2-n+1行:每行一个数字 p[i]对应牌的编号(1 <= P[i] <= 1000)输出
输出共 2 个数字 中间用空格分隔 对应A B的得分。数据范围
2 <= n <= 100000 1 <= P[i] <= 1000

输入样例
7
2
1
3
1
3
2
3

输出样例
3 3

样例解释
A出2 B出1 A出3 B出1(拿走1 3 1 剩下:2) B出3(B赢了先出)A出2(拿走2 3 2 不剩下任何牌)A出3。

  • 写回答

2条回答 默认 最新

  • 魔法自动机 2022-03-19 19:30
    关注

    模拟题,难点在于出牌时如何判断压住的有一样的牌,且一样的牌的位置。
    如何判断之前有一样的牌:用一个数组arr存放已经出现过牌的次数,如果i数字牌被压住arr[i]++,如果i数字牌被收走arr[i]--。
    一样牌的位置:可以用栈来解决,每次压一张牌就入一次栈,当前压入的牌是x,如果arr[x]!=0就出栈到第一个等于x的数,这中间出栈的牌数就是被夹住的牌数。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月28日
  • 已采纳回答 3月20日
  • 修改了问题 3月19日
  • 修改了问题 3月19日
  • 展开全部

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀