3.30阿里笔试

第一题
import sys
##n个养鸡场,每天增加k个,每天结束的时候数量最多的养鸡场减半,经过m天 共剩多少只小鸡
# 3 3 100
# 100 200 400
if __name__ == "__main__":
    def calculate():
        for i in range(m):
            for num in range(len(a)):
                a[num]+=k
            indexmax=a.index(max(a))
            a[indexmax]/=2
        print(sum(a))
    list=[]
    count=0
    a=[]
    for line in sys.stdin:
        if count%2==0:
            innum = line.split()
            n=int(innum[0])
            m=int(innum[1])
            k=int(innum[2])
            count+=1
        else:
            innum=line.split()
            a = []
            for x in innum:
                a.append(int(x))
            calculate()
            count += 1


第二题

import sys
#一个长为n的序列,求随机连续子序列的最大值的期望
#3
#1 2 3
if __name__ == "__main__":
    def continuesub():
        subcol=[]
        num=len(list)
        for i in range(0,num):
            for j in range(i,num):
                sub=[]
                for k in range(i,j+1):
                    sub.append(list[k])
                subcol.append(max(sub))
        print(round(sum(subcol)*1.0 / len(subcol),6))
    list=[]
    count=0
    for line in sys.stdin:
        if count%2==0:
            count+=1
        else:
            a=line.split()
            list = []
            for x in a:
                list.append(int(x))
            continuesub()
            count += 1       



#阿里实习##阿里巴巴##笔试题目#
全部评论
大佬问一下 python必须要写 if main 条件吗
点赞
送花
回复
分享
发布于 2020-03-30 22:00

相关推荐

1 1 评论
分享
牛客网
牛客企业服务