2022-11-22:小美将要期中考试,有n道题,对于第i道题,
小美有pi的几率做对,获得ai的分值,还有(1-pi)的概率做错,得0分。
小美总分是每道题获得的分数。
小美不甘于此,决定突击复习,因为时间有限,她最多复习m道题,复习后的试题正确率为100%。
如果以最佳方式复习,能获得期望最大总分是多少?
输入n、m
接下来输入n个整数,代表pi%,为了简单期间,将概率扩大了100倍。
接下来输入n个整数,代表ai,某道题的分值
输出最大期望分值,精确到小数点后2位
数据 1m<=n<=50000
来自美团。8.20笔试。题目1。

答案2022-11-22:

丢掉的分数的期望排序。复习前m道题。

代码用rust编写。代码如下:

use std::iter::repeat;

fn main() {
let mut pi = vec![20, 50];
let mut ai = vec![100, 200];
let ans = maximum_expected_score(&mut pi, &mut ai, 1);
println!("ans = {:?}", ans);
} fn maximum_expected_score(pi: &mut Vec<i32>, ai: &mut Vec<i32>, m: i32) -> f64 {
let n = pi.len() as i32;
//不复习的分数总和
let mut not_review_score = 0;
//复习的获得分数数组
let mut review_vec: Vec<i32> = repeat(0).take(n as usize).collect();
for i in 0..n {
not_review_score += ai[i as usize] * pi[i as usize];
review_vec[i as usize] = ai[i as usize] * (100 - pi[i as usize]);
}
//对复习数组排序
review_vec.sort();
review_vec.reverse();
let mut ans = not_review_score;
for i in 0..m {
ans += review_vec[i as usize];
}
return ans as f64 / 100.0;
}

执行结果如下:

2022-11-22:小美将要期中考试,有n道题,对于第i道题, 小美有pi的几率做对,获得ai的分值,还有(1-pi)的概率做错,得0分。 小美总分是每道题获得的分数。 小美不甘于此,决定突击复习,的更多相关文章

  1. 2019年11月18日 JAVA期中考试 增删改查

    一.题目 石家庄铁道大学 青年志愿者服务网(20分)   1.项目需求: 为了适应社会主义市场经济发展的需要,推动青年志愿服务体系和多层次社会保障体系的建立和完善,促进青年健康成长,石家庄铁道大学急需 ...

  2. JAVA第四五次大作业及期中考试总结

         21201411-李英涵            继承与多态blog2 前言: 期中考试的题目还可以,因为给了类图,但是难度也逐渐升高. pta中的四的第一题和第三题较为简单,因为第一题的正则 ...

  3. 皓远的第二次博客作业(最新pta集,链表练习及期中考试总结)

    前言: 知识点运用:正则表达式,有关图形设计计算的表达式和算法,链表的相关知识,Java类的基础运用,继承.容器与多态. 题量:相较于上次作业,这几周在java方面的练习花了更多的精力和时间,所要完成 ...

  4. 2020年11月CKA新题考试心得体会

    1 什么是CKA CKA,即Certificated Kubernetes Administrator,CNCF官方提供的Kubernetes技能认证,含金量还是不错的.还有CKAD,相对简单一些,没 ...

  5. VB6查看桌面分辨率和工作区大小 2022.08.22 name.vt

    VB6查看桌面分辨率和工作区大小 2022.08.22 name.vt Form1 内代码如下: ' 2022年8月22日 15时15分 ' 作者:name.vt Private Sub cmdCle ...

  6. CSU2022-2023C语言期中考试机试

    卡在出线概率了.40%,没想到遍历时反了,我去. 1.时钟加法 题目描述 小南最近迷上了各种形式的加法,例如时钟加法,时钟加法是指给定一个当前时间,其形式为h:m:s,计算加上n秒后新的时间.你能帮他 ...

  7. lambda的使用ret = filter(lambda x : x > 22 ,[11,22,33,44])

    #!/usr/bin/env python #def f1(x) : # return x > 22 ret = filter(lambda x : x > 22 ,[11,22,33,4 ...

  8. #有如下值集合[11,22,33,44,55,66,77,88,99,90...],将所有大于66值保存至字典的一个key中,将小于66的值保存至大二个key的值

    #!/usr/bin/env python #有如下值集合[11,22,33,44,55,66,77,88,99,90...],将所有大于66值保存至字典的一个key中,将小于66的值保存至大二个ke ...

  9. 08 集合[11,22,33,44,55,66,77,88,99],将所有<66的值保存至字典的第一个key中,将所有>=66的值保存至字典的第二个key中。即:{'k1':<66的所有值,'k2':>=66的所有值}

    li = [11,22,33,44,55,66,77,88,99]dict = {'k1':[],'k2':[]}for i in li:    if i < 66:        dict[& ...

  10. 【C#日期系列(一)】--C#获取某月第一天0分0秒以及最后一天59分59秒

    工作中可能会遇到很多不常见的需求,比如这次需要获取某个月的第一天和最后一天 #region 取得某月的第一天0分0秒 /// <summary> /// 取得某月的第一天0分0秒 /// ...

随机推荐

  1. Centos7安装nodejs(npm)

    执行命令: 设置yum安装源> curl --silent --location https://rpm.nodesource.com/setup_14.x | sudo bash (14是大的 ...

  2. CentOS 7 时区设置 EST和CST设置

    1. https://blog.csdn.net/allway2/article/details/102995747 CentOS 7 时区设置# timedatectl status      Lo ...

  3. iOS C#远程推送证书.p12文件制作

    1.PushChat.certSigningRequest      请求证书文件 生成Certificate Signing Request (CSR): 2.填写你的邮箱和Common Name, ...

  4. C# 微信开发 微信号接入 (附完整源码)(1)

    1. 首先配置微信服务器设置 a)        企业号配置信息 (详见:ConfigurationManager类) b)        企业号服务器配置: ConfigurationManager ...

  5. jmeter设置中文

    jmeter.properties #language=enlanguage=zh_CN

  6. 什么是Markdown

    什么是markdown? Markdown是一种轻量级标记语言,它允许人们使用已读一些的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档.这种语言吸收了很多在电子邮件中已有的纯文本标 ...

  7. OVS-DPDK 流表查询详解

    一图胜千言: flow和miniflow 在介绍之前先说一些概念:里面有两个结构很重要,一个是flow一个是miniflow这里介绍一下他们的数据结构和构造函数. flow: flow的特点是8字节对 ...

  8. “==” 与 equals 区别 简化易懂版

    首先,我们只需要看Object中的equals 方法写的是啥 很显然,就是一句话,"==" 与 equals方法作用完全一致. 都是用来比较在内存的首地址,即用来比较两个引用变量是 ...

  9. Java面试——Linux

    一.如果知道一个文件名称,怎么查这个文件在 Linux下的哪个目录,如:要查找 tnsnames.ora文件 1 find / -name tnsnames.ora 2 #还可以用locate 来查找 ...

  10. JVM 频繁 FULL GC 快速排查整理

    在分享此案例前,先聊聊哪些场景会导致频繁Full GC: 内存泄漏(代码有问题,对象引用没及时释放,导致对象不能及时回收)死循环大对象程序执行了System.gc() 尤其是大对象,80%以上的情况就 ...