大厂真题题解-米哈游3月19日研发岗三道题

2023大厂真题+题解+在线评测分享!

最近我们一直在将收集到的机试真题制作数据并搬运到OJ上,供大家免费练习,体会真题难度。现在已录入60+道2022/23年最新大厂真题,同时在不断的更新。关注"塔子哥学算法"公众号获得网址以及每道题的题解+代码。

第一题:题目内容

米小游拿到了一个矩阵,矩阵上有一格有一个颜色,为红色( R )。绿色( G )和蓝色( B )这三种颜色的一种。

然而米小游是蓝绿色盲,她无法分游蓝色和绿色,所以在米小游眼里看来,这个矩阵只有两种颜色,因为蓝色和绿色在她眼里是一种颜色。

米小游会把相同颜色的部分看成是一个连通块。请注意,这里的连通划是上下左右四连通的。

由于色盲的原因,米小游自己看到的连通块数量可能比真实的连通块数量少。

你可以帮米小游计算连通块少了多少吗?

输入描述

第一行输入两个正整数 n n n m m m ,代表矩阵的行数和列数。

接下来的 n n n 行,每行输入一个长度为 m m m 的,仅包含 RGB 三种颜色的字符串,代表米小游拿到的矩阵。

1 ≤ n , m ≤ 1000 1\le n,m\le 1000 1n,m1000

输出描述

一个整数,代表米小游视角里比真实情况少的连通块数量。

样例

输入

2 6
RRGGBB
RGBGRR

输出

3

样例解释

米小游视角里有 3 3 3 个连通块,而实际上有 6 6 6 个连通块,所以米小游视角的连通块数量比真实情况少了 3 3 3 个。

第二题:题目内容

米小游拿到了一个字符串 s 。她可以进行任意次以下两种操作:

  • 删除 s 的一个 "mhy" 子序列。
  • 添加一个 "mhy" 子序列在 s 上。

例如,给定 s"mhbdy" ,米小游进行一次操作后可以使 s 变成 "bd" ,或者变成 "mhmbhdyy"

米小游想知道,经过若干次操作后 s 是否可以变成 t

注:子序列在原串中的顺序也是从左到右,但可以不连续。

输入描述

第一行输入一个正整数 q q q ,代表询问的次数。

接下来每两行为一次询问:每行均为一个字符串,分别代表 st

1 ≤ q ≤ 1 0 3 1\le q\le 10^3 1q103

字符串的长度均不超过 1 0 3 10^3 103

输出描述

输出 q 行,每行输入一行答案。若可以使 s 变成 t ,则输出 "Yes" 。否则输出 "No"

样例

输入

3
mhbdy
bd
mhbdy
mhmbhdyy
mhy
abc

输出

Yes
Yes
No

第三题:题目内容

米小游拿到了一个集合(集合中元素互不相等)。

她想知道,该集合有多少个元素数量大于 1 1 1 的子集,满足子集内的元素两两之间互为倍数关系?

由于数量可能过大,请对 1 0 9 + 7 10^9+7 109+7 取模。

输入描述

第一行输入一个正整数 n n n ,代表集合大小。

第二行输入 n n n 个正整数 a i a_i ai ,代表集合的元素。

1 ≤ n ≤ 1 0 5 1\le n \le 10^5 1n105

1 ≤ a i ≤ 1 0 6 1 \le a_i \le 10^6 1ai106

输出描述

一个整数,代表满足题意的子集数量对 对 1 0 9 + 7 10^9+7 109+7 取模的值。

样例

输入

5
1 2 3 4 5

输出

6

样例解释

共有6个合法的子集:

{1,2},{1,3},{1,4},{1,5},{1,2,4},{2,4}

你可能感兴趣的:(算法)