@Dmaxiya
2022-06-08T19:09:14.000000Z
字数 3632
阅读 399
字节跳动
小 Byte 和小 Dance 在玩一种叫“开火车”的纸牌游戏,游戏规则如下:
输入包括两行,每行 26 个数字,分别表示两位玩家初始被随机分配到的牌的点数,第一行为小 Byte 被分到的牌。
若平局则输出 Draw
,否则输出获胜玩家的名字(Byte
或者 Dance
)。
10 2 5 6 13 11 11 4 10 8 12 5 4 1 8 1 7 12 4 13 6 9 9 9 5 7
6 3 13 8 2 3 7 3 2 2 12 11 10 6 10 1 1 12 3 5 7 11 13 4 8 9
Byte
对于样例输入,最终小 Byte 获得 31 张牌,小 Dance 获得 19 张牌,剩下两张点数为 6、9 的牌。
所有数字都在区间 内。数据保证所有点数分布与扑克牌点数相同。
按题意模拟即可。
2019 年 3 月 12 日,全球的 Bytedancer 共同庆祝字节跳动成立七周年。七年前的今天,初创团队把营业执照领回锦秋家园,七年后的今天,字节跳动在不断地快速成长,吸纳全球优秀的人才加入。
为了纪念 2012 年 3 月 12 日这个重要的日子,我们希望能够对于之后的任何一个日期,计算出公司已经成立了多少天。人工计算或者 Excel 表操作是费时的,我们希望你能实现这个功能,并期待优秀的你加入我们。
第一行为一个整数 ,表示有 组数据,接下去 行,每行三个整数 ,分别表示年、月、日。
对于每组数据,输出 1 个整数,表示从 2012 年 3 月 12 日到给出的日期经过了多少天。
输入样例
2
2012 3 13
2019 3 12
1
2556
1 <= T <= 100, 2012 <= y <= 9999, 1 <= m <= 12, 1 <= d <= 31
数据保证给出的日期合法,且在 2012 年 3 月 12 日之后。
2012/3/12 距 2011/12/31 有 72 天,计算给出的日期距 2011/12/31 有多少天,这样可以按整年、整月地计算,将计算得到的值减去 72 就是答案。
最后注意平年闰年的二月份。
Bytedance 决定对所有新人展开一次针对性的培训。公司有很多新人,每个人想学的内容都不一样。限制每个人只能在本次培训中学习一门课程,经过统计,新人们总共想学 门课程,每门课程报名的人数分别为 。为了保证公平与方便管理,公司决定采用小班教学模式,所有的小班内人数相同,同一班级内的课程内容相同。由于人力有限,我们期望在满足以上前提条件的同时,班级数量尽可能地少,问:最少需要开多少个小班。
第一行为一个整数 ,表示有 门课程,第二行为 个整数,每个整数之间用一个空格分隔,分别为 ,表示门课程的报名人数。
输出最少需要开多少个小班。
3
1 1 2
4
对于 的数据,
对于 的数据,
对于 的数据,, 答案不超过 int
能表示的范围
暴力解法是枚举所有可能的每个班级的人数,由班级人数计算需要分班的数量,取最小值,完全暴力枚举的做法可以通过 的数据,如果及时加一些 break
剪枝可以通过 的数据,最后 的数据每个数字都有至少 1000 个约数,所以有 1000 个数字无法通过 break
优化;
由于每个班级的人数越多,分班数量越少,而且要求满足每门课程的分班人数都相等,所以每个班的人数都要能整除每一门课程的人数,因此每个分班的最大人数就是这 个数字的最大公约数,求最大公约数用辗转相除法,暴力枚举最大公约数的话,也无法通过最后的 数据。
最后注意 个数字的和爆 int
。
在一个交通非常便捷的城市,总共有 座建筑,建筑有 和 两种类型,建筑之间存在 条相互连通的双向道路,任意两个城市之间可以直接或间接地通过道路相互到达,经过长时间的调研市长发现建筑之间的通道过多导致维护成本远高于收益,因此决定尽可能多地停用一些道路。
停用道路之后,城市之间仍然要保持便捷的交通,最终决定剩余的道路应满足以下要求:
现在将规划的任务交给你,请给出一个合理的方案。
第一行为两个整数 和 ,表示有 座建筑和 条道路,第二行为一个长度为 的字符串,字符串只包含 和 ,第 位字母表示第 座建筑的类型,接下去 行每行两个整数 ,表示第 座建筑和第 座建筑之间有一条道路可以直接到达。
第一行为一个整数 ,表示要继续运营的道路数量,第二行为 个整数,每个整数表示一个道路编号,道路按照输入顺序从 1 开始编号。如果有多解输出任意一个即可,注意输入的编号必须在区间 内,且两两互不相等。
4 6
AABB
3 4
2 1
4 2
3 1
1 4
2 3
3
5 3 4
对于 的数据,
对于 的数据,
数据中不存在重复的无序对 ,保证至少存在一组解。
选择任意一个节点开始搜索(bfs 或者 dfs),搜索过程中若相邻节点类型相同则不搜索对应边,已经搜索到的节点不再继续搜索,最后必然得到一个 条边的树形结构,将搜索过程中跑过的边的编号输出,就是答案。
用邻接矩阵可以通过 的数据,用邻接链表或 vector
数组或链式前向星等结构可以通过 的数据。
在一个树形的网络结构中,总共有 个节点,它们在传输数据的过程中会产生各种时延,如节点处理时延、排队时延、传输时延、传播时延等,我们将所有传输过程中产生的时延求和取均值统一为一个数值。
为估计整个网络的效率,现在需要抽取某些网络节点,并计算在所有可能传输到的其他节点中,最长的总时延,如节点 到节点 的时延为 毫秒,节点 到节点 的时延为 毫秒,则节点 到节点 的总时延为 毫秒,由于网络中存在大量的节点以及多次的抽样,你的程序需要用尽可能高效的方式运行以得到结果。
第一行为一个整数 ,接下去 行每行三个整数 ,表示节点 与节点 之间的时延为 。第 行为一个整数 ,表示有 次抽样,接下去 行每行一个整数 ,表示被询问的节点编号。
对于每个被抽样的节点,输出该节点到网络中所有其他节点的最大总时延。
4
1 2 10
1 3 5
4 1 3
2
2
4
15
13
对于 的数据,
对于 的数据,
对于 的数据,
数据保证结构为一棵树。
直接暴力对每个点 bfs 或 dfs 能通过前 的数据;
先对每个点暴力 bfs 或 dfs 预处理,将答案存到每个点上,可以通过 的数据;
用 记录到达节点 的最大时延,首先有 dp 公式:
然后对整棵树进行两次 dfs,第一次从叶子节点往根节点 dp,可以得到所有节点到其子树上所有节点的最大时延,第二次从树根往叶子节点 dfs,将父节点的信息传到子节点,相当于将兄弟节点的信息传给该子节点,这里需要注意如果是从父节点 传到子节点 ,则需要取的是 所记录的 的兄弟节点子树的信息(不能包含 所在子树的信息,否则会出错),这里需要预处理所有子节点的前缀 Max 与后缀 Max 以 求解得到该值,暴力求解的话其中一组数据返回超时(某个节点与所有其他节点相邻的情况,会被卡成 )。