首页 > 试题广场 >

扔骰子

[编程题]扔骰子
  • 热度指数:1182 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
牛妹在和牛牛玩扔骰子,他们的游戏规则有所不同;

每个人可以扔面骰子,来获得个数
得分为任意选取个数中的某些数求和所不能得到的最小的正整数
得分大的人获胜
例如扔骰子次得到了 ,那么这个人的得分是

牛妹想知道这回合她是否能赢
牛妹的n个数存在数组a中,牛牛的n个数存在数组b中

数组下标从0开始

如果牛妹能在这回合胜利则输出,否则输出

示例1

输入

2,4,[1,2],[1,3]

输出

"Happy"

说明

牛妹能构成   ,牛妹的得分为4
而牛牛只能构成  ,牛牛的得分为2
故牛妹胜利!

备注:

头像 Maokt
发表于 2021-08-07 13:10:53
算法思想一:有序哈希 解题思路: 分别计算牛妹和牛牛的得分,根据得分进行判断结果: 计算方式: 1、首先定义一个哈希表 set,用于存放所有可能的累加和,并保证累加和是有序的。 2、然后遍历整个数组,将可能的累加和放入哈希表中 set。 3、最后遍历 set,看其中是否包含不 展开全文
头像 未来0116
发表于 2021-08-04 16:26:26
一.题目描述NC520扔骰子牛妹在和牛牛玩扔骰子,他们的游戏规则有所不同;每个人可以扔n次m面骰子,来获得n个数,得分为任意选取n个数中的某些数求和所不能得到的最小的正整数得分大的人获胜例如:扔骰子3次得到了1,2,5,那么这个人的得分是4。牛妹想知道这回合她是否能赢?牛妹的n个数存在数组a中,牛牛 展开全文
头像 Tag_Kausal
发表于 2020-02-07 13:14:50
做法1:AC题意可以转化为我们要找到一个最大的,使得都能被构造出来,那么答案就是。很明显我们为了维护这个集合,需要先把数字排个序,因为集合是从小往大扩充的。考虑我们已经可以用的数表示了的数,此时我们新加入一个数,能加入集合需要满足如下特征: 原因是如果,那么将缺失。那么做法就很明显了,我们只需要先把 展开全文
头像 认认真真coding
发表于 2021-08-05 10:08:19
题目描述牛妹在和牛牛玩扔骰子,他们的游戏规则有所不同;每个人可以扔n次m面骰子,来获得n个数得分为任意选取n个数中的某些数求和所不能得到的最小的正整数得分大的人获胜例如扔骰子3次得到了 1 2 5,那么这个人的得分是4 牛妹想知道这回合她是否能赢牛妹的n个数存在数组a中,牛牛的n个数存在数组b中数组 展开全文
头像 牛客534170409号
发表于 2021-08-17 20:27:05
题目描述 每个人可以扔次面骰子,来获得个数得分为任意选取个数中的某些数求和所不能得到的最小的正整数问数组的得分与数组得分的大小关系 方法一 有序哈希表 解题思路 可以考虑使用C++的STL中的有序set存放每个数组可以得到的所有整数,然后遍历该set,找到不连续的最小正整数即为该数组的得分.得到 展开全文
头像 xqxls
发表于 2021-08-04 23:11:02
题意整理 牛妹和牛牛在玩掷骰子游戏,看谁能够获胜。 得分规则为,给定每一次所掷的骰子点数,这些点数可以随意组合相加得到一些数,从1开始计算,如果某个数不在这些组合得到的数中,则这个数就是他的得分。 方法一(有序哈希) 1.解题思路 首先定义一个TreeSet,用于存放所有可能的累加和,并保证累 展开全文

问题信息

难度:
3条回答 4977浏览

热门推荐

通过挑战的用户

查看代码