2019校招实习笔试汇总

mark下遇到的笔试题吧
招行算法:
同学遇到的题,笔试后交流了下思路,由于a范围比较小,所以可以暴力(搜索剪枝)加用集合和字典优化。复杂度大概O(n*logn)
有n种不同的化学试剂。第i种有ai升。每次实验都要把所有的化学试剂混在一起,但是这些试剂的量一定要相等。所以现在的首要任务是把这些化学试剂的量弄成相等。
有两种操作:
· 把第i种的量翻倍,即第i种的量变成2ai。
· 把第i种的量减半,除的时候向下取整,即把第i种的量变成 ⌊ ai2 ⌋ 。
现在所有的化学试剂的量已知,问最少要变换多少次,这些化学试剂的量才会相等。
Input
单组测试数据。
第一行有一个整数n (1 ≤ n ≤ 10^5),表示化学物品的数量。
第二行有n个以空格分开的整数ai (1 ≤ ai ≤ 10^5),表示第i种化学试剂的量。
Output
输出一个数字,表示最少的变化次数。
Input示例
3
4 8 2
Output示例

from collections import defaultdict
n=input()
l=list(map(int,input().split()))
def slove(l):
    if len(l)<=1:
        return 0
    ans=defaultdict(int)
    p=set(range(10001))
    for i in l:
        q=[(i,0)]
        visted=set()
        while q:
            k,l=q.pop()
            if k>=1 and k<=10000 and k not in visted:
                ans[k]+=l
                visted.add(k)
                q.append((k<<1,l+1))
                q.append((k>>1,l+1))
        p=p&visted
    res=100000000086
    for k in p:
        res=min(res,ans[k])
    return res
print(slove(l))

阿里机器学习算法
由于数据不大,所以两道分析出公式后,就可以模拟。
第一题,两个人分奖金,给一个概率的序列分别[p0,p1,p2,p3…pN]依次表示A,B取得奖金的概率,序列到底后从p0开始(假如是奇数的话从p1开始),但是超过100轮的话,则结束。求A分得奖金概率,保留4位小数。

N=int(input())
p=[0]
for i in range(N):
    p.append(float(input()))
def sovle(N,p):
    ans=0
    if N%2==1:
        k=100//N+1
        p=p+p[2:]*k
    else:
        k=100//N+1
        p=p+p[1:]*k
    ans=0
    for i in range(1,101):
        if i%2==1:
            midans=p[i]
            for k in range(0,i):
                midans*=(1-p[k])
            ans+=midans             
    return round(ans,4)
print(sovle(N,p))

第二题
M个鱼丸,N个肉丸,K个婉,(0<M,N<=50,K>0), 每个碗最多装50个丸子,鱼丸肉丸不混在一个碗,不区分碗,求装法。空碗不计。

m=int(input())
n=int(input())
k=int(input())
mod=10000
def C(a,b):
    ans=1
    for i in range(a-b+1,a+1):
        ans*=i
    for j in range(1,b+1):
        ans=ans/j
    return ans%mod

def sovle(m,n,k):
    k=min(k,m+n)
    if k<=1:
        return 0
    pm=[0]*(m+1)
    pn=[0]*(n+1)
    res=0
    for j in range(1,m):
        res+=C(m,j)
        pm[j]=res
    res=0
    for j in range(1,n):
        res+=C(n,j)
        pn[j]=res
    ans=0
    for i in range(1,k):
        ans+=pm(i)*pn(k-i)
        ans=ans%mod
    return ans
print(sovle(m,n,k))        

考试的时候没A,只通过部分,感觉是考虑的特殊情况不全面。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值