今晚做了腾讯的笔试,方向是技术研究与数据分析(我本人投的算法岗)。万万没想到还有25题不定项选择题,不定项选择题包含:数据结构,微积分,线性代数,概率论。完全没有准备,选择题基本没有会的。分数是25*3+3*20=135分。攒点人品,整理一下把编程题发上来方便后人,以后哪个大佬进腾讯了帮我内推下哈哈哈。老规矩,前面是题目,方便自己动手编程,后面是解析和代码。PS:时间统一为C/C++1秒其他2秒
第一题:小Q手上开始有一个整数N,它每一次可以对这个数做如下操作:①对当前手上所有的数减1②把所有的数拆分为两个更小的数之和。其中拆分次数要不大于k次。问小Q最少需要多少次操作才能将N完全消除。输入说明:一行两个正数n,k用空格隔开。输出说明:输出最少次数。测试用例:①5 2 -->4;②15 4 -->6。PS:本题较难理解,所以给出测试用例,个人觉得是题目表达不明确,因为我一个同学也理解错了。正确的理解(不一定正确,但是AC了,谁有更正确的想法也麻烦告知我一下)我解析的时候说明。
第二题:小Q所在的镇子有一条公路连接所有的n个村庄。有些村庄需要卖水果有些村庄需要买水果,数量用Ai表示(Ai>0说明需要卖水果,Ai<0说明需要买水果,所有的Ai之和为0)。把k个单位的水果运输到相邻的村庄需要费用为k。问所有村庄都满足买卖需求的最少费用是多少。输入说明:第一行是村庄个数,第二行是村庄需要的水果数,用空格隔开。1<=n<=10000.测试用例:5 5 -4 1 -3 1 -->9