食堂评测(python实现)

食堂测评(通信网理论基础)

成都某大学已建成n座食堂。国庆期间,小朱同学受朋友小白的邀请,评测该大学的食堂。每座食堂在大众点评上有一定的评分,每测评一个食堂获得该食堂分数;同时,每座食堂也有一定概率吃到卫生不达标的食物。小朱要想尽一切办法,打卡得到尽可能多的分数。现在,为了保证晚上能愉快的玩耍,小白设定了一个踩坑概率。他认为只要概率低于这个水平,他们就不会闹肚子。

输入:第一行样例数量t。对每一个样例,第一行为踩坑概率P(浮点数),和食堂数量n<1000,之后n行,每行为一个评分m<10000,一个概率p(浮点数)。
输出:对于每一个样例,输出打卡到的最大评分。

样例:
输入
3
0.04 3
1 0.02
2 0.03
3 0.05
0.06 3
2 0.03
2 0.03
3 0.05
0.13
1 0.03
2 0.02
3 0.05
输出:
2
4
6

题目分析:
采用01背包思路进行处理解决。

import sys, time,math
start_1=time.time()
ML=0
M1=[]
M1_S=[]
M2_P=[]
Memory_formal=[]
Memory_latter=[]
cou=0

def backet(M1_S,M2_P,Cap):
    if cou==1:
        for item in range(Cap+1):
            Memory_latter.append(0)
    for i in range(len(M1_S)):
        Memory_formal.clear()
        for i0 in range(len(Memory_latter)):
            Memory_formal.append(Memory_latter[i0])
        for item in range(1,Cap+1):
            if M1_S[i] <= Cap:
                if item-M1_S[i]<0:
                    Memory_latter[item] = Memory_formal[item]
                else:
                    if(Memory_formal[item] > Memory_formal[item-M1_S[i]]+M2_P[i]):
                        Memory_latter[item]=Memory_formal[item]
                    else:
                        Memory_latter[item]=Memory_formal[item-M1_S[i]]+M2_P[i]

f = open('1.txt', 'r')
Count=int(f.readline())
for item1 in range(Count):
    cou=0
    M1.clear()
    M1_S.clear()
    M2_P.clear()
    ML=0
    Memory_formal.clear()
    Memory_latter.clear()
    Cap,Num=f.readline().split()
    Num=int(Num)
    for item2 in range(Num):
        a,b=f.readline().split()
        ml=len(b)
        if(ML<ml):
            ML=ml
        M1.append(eval(b))
        M2_P.append(int(eval(a)))
    Cap=int(eval(Cap)*(10**(ML-2)))
    for item3 in range(Num):
        M1_S.append(int((M1[item3])*(10**(ML-2))))
    cou=cou+1
    backet(M1_S,M2_P,Cap)
    print(Memory_latter[-1])
end_1= time.time()
print('Running time: %s Seconds' % (end_1 - start_1))

读取数据存放至txt文档中即可。

测试结果如下:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Python可以通过编写一个供餐系统来实现华为OD食堂的供餐管理。以下是一个可能的实现方案。 首先,我们可以使用Python中的Flask框架来创建一个简易的网站。网站上包含供餐菜单、用户信息和订单管理等功能。 通过Flask框架,我们可以定义一些路由用于处理不同的请求。比如,我们可以定义一个用于展示菜单的路由,通过数据库查询获取当前可供选择的菜品,然后在网站上展示出来。用户可以通过点击菜品来选择自己想要的套餐,并提交订单。 在后台,我们可以使用一些数据库,如MySQL或SQLite来存储菜品、用户信息和订单等数据。当用户提交订单时,我们可以将订单信息存储到数据库中。 另外,我们可以编写一个定时任务来处理每天的供餐流程。这个定时任务可以在每天的指定时间点执行,比如早上8点。任务可以自动将前一天所有用户的订单进行汇总,然后生成一份供餐清单。我们可以使用Python的邮件发送库来将清单通过邮件发送给供餐人员,以便他们准备材料和食物。 此外,用户还可以在网站上查看已经提交的订单,并有机会进行取消或修改。管理员在后台可以管理菜品、用户信息、订单记录等数据。 总结来说,借助Python的Flask框架和数据库存储,我们可以实现一个方便、高效的华为OD食堂供餐系统。这个系统可以为用户提供浏览菜单、选择套餐、提交订单的功能,并为管理员提供订单管理和数据统计的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值