3.27 360实习笔试

问题一

某厂加班发加班工资,连续加班i天则发i元工资,已经小A每天有以下几种可能,不加班(对应编号为0),加班(对应为1),50%可能加班50%可能不加班(对应为2),求计算其工作n天后得到的加班工资其数学期望(取整)

数据范围: 1<=n<=1e5
input:
3
1 2 1
output:
4

看大神答案不懂


import sys
lines = sys.stdin.readlines()
t = list(map(int, lines[1].split()))
count = 1
res = 0
cur = 0
 
for i in t:
    if i==0:
        cur=0
        continue
    cur+=count
    if i==2:
        count*=2
    res += cur/count
print(int(res))

问题二

可能算思维?
转换成数学语言为:已知a, b, c均为正整数,给定正整数n,求满足 (a - 2) * (b - 1) * (c - 2) = n 的约束下,a * b * c - n 的最大值

  1. 显然,a = 3, b = n + 1, c = 3时,a * b * c - n 的值最大(其实是不会证)
  2. 其他坑点:数据爆int ,要用long哦

你可能感兴趣的:(笔试)