广联达笔试题解0729

第一题

杰夫非常喜欢种草,他自己有一片草地,为了方便起见,我们把这片草地看成一行从左到右,并且第 i 个位置的草的高度是hi。
杰夫在商店中购买了m瓶魔法药剂,每瓶魔法药剂可以让一株草长高x,杰夫希望每次都能有针对性的使用药剂,也就是让当前长得最矮的小草尽量高,现在杰夫想请你告诉他在使用了m瓶魔法药剂之后,最矮的小草在这种情况下最高能到多少。

输入描述
第一行三个整数n, m, x分别表示小草的个数,魔法药剂的个数以及每瓶魔法药剂让小草长高的高度。(1≤n,m,x≤1e5)  第二行n个整数分别表示第i株小草的高度ai(1≤ai≤1e9)  输出描述
使用了m瓶药剂之后最矮的小草的最高高度。
import heapq
n, m, x = map(int, input().strip().split(' '))
grass = list(map(int, input().strip().split(' ')))
heapq.heapify(grass)

for _ in range(m):
    c = heapq.heappop(grass)
    heapq.heappush(grass, c + x)

print(str(heapq.heappop(grass)))

第二题

题目描述:
我们希望一个序列中的元素是各不相同的,但是理想和现实往往是有差距的。现在给出一个序列A,其中难免有些相同的元素,现在提供了一种变化方式,使得经过若干次操作后一定可以得到一个元素各不相同的序列。
这个操作是这样的,令x为序列中最小的有重复的数字,你需要删除序列左数第一个x,并把第二个x替换为2*x。
请你输出最终的序列。
例如原序列是[2,2,1,1,1],一次变换后变为[2,2,2,1],两次变换后变为[4,2,1],变换结束

输入描述
输入第一行包含一个正整数n,表示序列的长度为n(1<=n<=50000)  第二行有n个整数,初始序列中的元素。(1<=a_i<=10^8)  输出描述
输出包含若干个整数,即最终变换之后的结果。
from collections import defaultdict
import heapq

n = int(input())
l = list(map(int, input().strip().split(' ')))

q = []
heapq.heapify(q)
c = defaultdict(list)
for idx, item in enumerate(l):
    c[item].append(idx)
for k in c:
    heapq.heapify(c[k])
    if len(c[k]) >= 2:
        heapq.heappush(q, k)

while q:
    t = heapq.heappop(q)
    re = heapq.heappop(c[t])
    l[re] = 'a'
    n = heapq.heappop(c[t])
    l[n] *= 2
    if len(c[t]) >= 2:
        heapq.heappush(q, t)

    if t * 2 in c:
        heapq.heappush(c[t * 2], n)
    else:
        c[t * 2] = [n]
        heapq.heapify(c[t * 2])

    if (len(c[t * 2]) >= 2) and ((t * 2) not in q):
        heapq.heappush(q, t * 2)

print(' '.join([str(i) for i in l if i != 'a']))

第三题

不会了

#笔经#
全部评论
第一题用dfs回溯行不行?
点赞 回复 分享
发布于 2020-07-29 23:22
笔试还没完呢😅现在发题解好像不太好
点赞 回复 分享
发布于 2020-07-29 21:29
第一题我为啥只有55啊。。。。不是每次浇最低那个,最后输出最低的
点赞 回复 分享
发布于 2020-07-29 21:16
可以的老哥
点赞 回复 分享
发布于 2020-07-29 21:10
老哥第二题清晰啊,我第二题只有64%,第三题做出来吗
点赞 回复 分享
发布于 2020-07-29 20:55
前两道题就考个堆呗,用了就不超时😂
点赞 回复 分享
发布于 2020-07-29 20:34
楼主你好,请问你是什么岗位?开发的话,是Java方向还是C++方向?或者其他语言方向~
点赞 回复 分享
发布于 2020-07-29 20:30

相关推荐

04-16 10:27
已编辑
美团_Saas_后端开发
今天周一休息,突发奇想写一篇阶段总结。如题,我已经去了一个和Java彻底毫无关联的行业。曾经我以为自己能在计算机行业发光发热,拿到美团offer那会感觉自己天都亮了。没想到刚入行一年多就当了逃兵。从最开始的热爱到现在一看到代码就厌恶,不知道自己经历了什么。所以我去干什么了?答案是:在成都当了租房销售。上班那会压力大了就念叨着去干租房中介,但是一直下不去这个决心,想着自己学了四年多的计算机知识,终究还是不甘心。终于在某一天准备八股文的时候,看着无数篇和工作内容关系不大的理论知识,那一刻下定决心,决定尝试一下销售行业,也算是给自己一个交代。后面阴差阳错的投了成都自如去当租房管家,没想到面试很顺利,在当天一百多个面试的人里面,我成为了为数不多通过的几个幸运儿之一。目前已经培训通过,正式入职,也开了单,有压力但是每天过得很开心,真心喜欢那种和人交流的感觉,哪怕是最后没有选择找我租房。说这些也是想告诉那些大三,大四正在找Java实习而焦虑的同学:你们现在还年轻,选择很多,容错率也很高,可以尽情去尝试自己喜欢的行业和工作。不用因为某一次的面试没通过或者简历石沉大海而焦虑,更不用因为身边人都在挤编程的独木桥就强迫自己跟风。也算是自己的碎碎念吧,也希望自己能在新的领域取得一点小成就。也祝牛油工作顺利!
沉淀小子:干啥都不丢人啊,生存是必须要的,销售很考验一个人综合素质能力的,好的销售人脉和资源可不比写字楼的白领差啊
点赞 评论 收藏
分享
评论
10
32
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务