腾讯2019校招笔试编程题

【第一题】


题目描述

小Q在学校学习了最小公倍数的求法:

LCM(2)=2,LCM(4,6)=12,LCM(1,2,3,4,5,6)=60

现在给出一个正整数n,求计算出最小的大于n的正整数m,使得满足:LCM(n+1,n+2,,m)=LCM(1,2,,m)

例如:n=3,那么m=6,因为LCM(4,5,6)=LCM(1,2,3,4,5,6)=60并且这个m是最小的大于n的正整数。

输入描述

输入包括一个正整数n(1<=n<=1e6)

输出描述

输出m

示例1

sample input

3

sample output

6

这题是某道原题,简单提一下网上思路:
假设有质数K,可以求出t,使得K的t次方刚好小于等于m(K^t<=m),那么lcm(1,2,…,m)分解质因数中一定而且最多有t个质数K连乘,其实我们可以就是求的质数的最高次幂,这样就可以很快地把lcm(1,2,…,m)分解质因数,那么怎么把 lcm(n+1,n+2,…,m)分解质因数呢?我们仍然假设质数K,可以求出最大的t,以及一个常数c(1<=c < K),使得 n+1<=c*K^t<=m 那么lcm(n+1,n+2,…,m)分解质因数中一定而且最多有t个质数K连乘。
【第二题】

题目描述

小Q所在的王国有n个城市,城市之间有m条单向道路连接起来。

对于一个城市V,从城市V出发可以到达的城市数量为X,从某个城市出发可以达到城市V的城市数量为Y,如果Y>X ,则城市V是一个重要城市(间接到达也算可以到达)。

小Q希望你能帮他计算一下王国中一共有多少个重要城市。

输入描述

输入包括m+1行

第一行包括两个数n和m(1<=n,m<=1000),分别表示城市数和道路数

接下来m行,每行两个数u,v(1<=u,v<=n),表示一条从u到v的有向道路,输入可能包含重边和自环

输出描述

输出一个数,重要节点的个数。

示例1

sample input
4 3
2 1
3 2
4 3
sample output
2

城市1,2是重要城市

数据范围1e3,不是很大,考虑统计每个城市的入度和出度,就是一个简单的深度优先遍历了。
【第三题】

题目描述

给出三个数字ABC,你可以选择若干个数字,但是这些数字必须是A的倍数,并且至少得选择一个数字。

问是否存在一种选择方案使得这些数字的和对B取余的结果为C,存在输出YES否则输出NO

输入描述

输入包括t(1<=t<=20),ABC(1<=ABC<100)

输出描述

输出YES或NO

示例1

sample input

3
91 16 5
58 16 0
96 12 4

sample output

YES
YES
NO

暴力一发,枚举A的倍数,测测RP,据说可以过(后台数据水吧~),目前没有想到更好的方法。
#校招##腾讯#
全部评论
第三题,,只有c%(gcd(a,b))==0才能输出yes,否则no
点赞 回复 分享
发布于 2018-09-19 19:53
第三题,和只能是a的倍数从a*1循环到a*100就过了
点赞 回复 分享
发布于 2018-09-16 18:07

相关推荐

05-05 21:45
已编辑
广州大学 Java
点赞 评论 收藏
分享
求面试求offer啊啊啊啊:把华北改为华南再试一试,应该就没啥问题了。改完可能都不用投,别人主动联系了。
点赞 评论 收藏
分享
评论
4
20
分享

创作者周榜

更多
牛客网
牛客企业服务