题目背景 小 g 参加一场考试时,不小心把答题卡填反了。 题目描述 答题卡有 n(1≤n≤109)行,m(1≤m≤109)列,共 nm 道题,从左到右,从上到下,横向排列。 每道题有 c(4≤c≤109) 个选项。其中,前 k(0≤k≤nm) 道题为单选题,有且仅有一个正确选项;后 nm-k 道题为多选题,正确选项个数严格大于 1 且严格小于 c。 小 g 正确地回答了所有题,但是她不小心把答题卡的方向看反了,从而她的答案排列方式为从上到下,从左到右,纵向排列。 题目的评分方式为:选项完全正确得 1 分,多选或错选得 0 分,漏选按比例给分。 形式化地说,若 A 为某道题正确答案选项的集合,B 为答题卡上选项的集合(均为 {1,2,3,...,c} 的子集),则该题得分为: {∣B∣/∣A∣if B⊆A {0 otherwise 小 g 忘记考试的正确答案是什么了,于是她去问小 f,如果考试的正确答案在合法范围内等概率随机,那么自己期望得分是多少。由于结果可能很大,她只需要知道结果对 1e9+7 取模的值。 题目保证 c 和 2^c-c-2 都不是 1e9+7 的倍数。 但是小 f 也不会,所以他来求助万能的你。 输入格式 一行,四个用空格分隔的整数 n,m,k,c,分别表示答题卡的行数,列数,单选题的数量和每道题的选项个数。 输出格式 一行,一个整数,表示期望得分,对 1e9+7 取模。

时间: 2024-04-22 14:27:50 浏览: 14
对于这道题,我们需要计算小 g 的期望得分对 (1e9+7) 取模的值。 首先,我们可以计算出单选题的数量为 k,多选题的数量为 nm-k。 接下来,我们需要计算每道题的得分情况。 对于单选题,得分为 1,所以总得分为 k。 对于多选题,我们需要考虑每个选项的情况。假设每道多选题有 x 个正确选项,则得分为 ∣B∣/∣A∣,其中 ∣B∣ 表示小 g 在这道题上选择了多少个选项,∣A∣ 表示这道题的正确选项个数。 根据题目描述,多选题的正确选项个数严格大于 1 且严格小于 c。所以我们可以假设每道多选题有一个正确选项,即 x=1。这样我们可以将得分简化为 ∣B∣。 接下来,我们需要计算 ∣B∣ 的期望值。由于小 g 是随机选择答案,所以每个选项被选择的概率都是相等的,即 1/c。因此,∣B∣ 的期望值为 (nm-k)/c。 综上所述,小 g 的总得分为 k + (nm-k)/c。最后,我们将得分对 (1e9+7) 取模,并输出结果。 代码示例: ```python n, m, k, c = map(int, input().split()) score = (k + (n*m - k) // c) % (10**9 + 7) print(score) ``` 希望对你有所帮助!
相关问题

题目背景 小 g 参加一场考试时,不小心把答题卡填反了。 题目描述 答题卡有 n(1≤n≤109)行,m(1≤m≤109)列,共 nm 道题,从左到右,从上到下,横向排列。 每道题有 c(4≤c≤109) 个选项。其中,前 k(0≤k≤nm) 道题为单选题,有且仅有一个正确选项;后 nm-k 道题为多选题,正确选项个数严格大于 1 且严格小于 c。 小 g 正确地回答了所有题,但是她不小心把答题卡的方向看反了,从而她的答案排列方式为从上到下,从左到右,纵向排列。 题目的评分方式为:选项完全正确得 1 分,多选或错选得 0 分,漏选按比例给分。 形式化地说,若 A 为某道题正确答案选项的集合,B 为答题卡上选项的集合(均为 {1,2,3,...,c} 的子集),则该题得分为: {∣B∣/∣A∣if BA {0 otherwise 小 g 忘记考试的正确答案是什么了,于是她去问小 f,如果考试的正确答案在合法范围内等概率随机,那么自己期望得分是多少。由于结果可能很大,她只需要知道结果对 1e9+7 取模的值。 题目保证 c 和 2^c-c-2 都不是 1e9+7 的倍数。 但是小 f 也不会,所以他来求助万能的你。 输入格式 一行,四个用空格分隔的整数 n,m,k,c,分别表示答题卡的行数,列数,单选题的数量和每道题的选项个数。 输出格式 一行,一个整数,表示期望得分,对 1e9+7 取模。

根据题目描述,我们需要求出小 g 的期望得分对 (1e9+7) 取模的值。首先,我们需要确定单选题和多选题的数量。 单选题的数量为 k,多选题的数量为 nm-k。接下来,我们需要确定每道题的得分。 对于单选题,得分为 1,所以总得分为 k。 对于多选题,我们需要考虑每个选项的情况。假设每道多选题有 x 个正确选项,则得分为 ∣B∣/x,其中 ∣B∣ 表示小 g 在这道题上选择了多少个选项。 因此,我们需要计算 ∣B∣ 的期望值。由于小 g 是随机选择的答案,所以每个选项被选择的概率都是相等的,即 1/c。由于每道多选题有 nm-k 个,所以 ∣B∣ 的期望值为 (nm-k)/c。 综上所述,小 g 的总得分为 k + (nm-k)/c。最后,我们将得分对 (1e9+7) 取模,并输出结果。 代码示例: ```python n, m, k, c = map(int, input().split()) score = (k + (n*m - k) // c) % (10**9 + 7) print(score) ``` 希望能对你有所帮助!

x683 蚂蚁 难度:时间限制:1s 内存限制:256m尚未作答开始答题题目描述有n蚂蚁在长

一开始,我们假设所有蚂蚁朝着同一个方向移动。如果两只蚂蚁相遇,它们会绕着对方继续移动,而不会改变自己的方向。我们可以将这些蚂蚁看做是穿着颜色不同的衣服,这样我们就可以观察到它们的移动情况。不过,在现实生活中,蚂蚁们的移动方向是随机的,所以我们可以将所有蚂蚁的移动方向都设定为同一个。 如果我们记录下每只蚂蚁的初始位置和移动速度,并且转换为以最慢蚂蚁的速度为参照的坐标系,那么我们可以将问题转化成所有蚂蚁在同一条直线上移动的问题。因此,我们只需要考虑蚂蚁在同一直线上相遇的情况,而不需要考虑不同直线上蚂蚁的相遇情况。 除此之外,我们可以通过计算出每只蚂蚁到达端点的时间来确定它们的相遇情况。有时候蚂蚁们会在端点相遇,有时候它们会在中途相遇。不过,不管怎样,我们都可以通过初始位置和移动速度的关系来计算出它们的相遇时间。 总的来说,我们需要找出所有蚂蚁相遇的情况,并且确定它们相遇的位置和时间。最后,我们再根据初始条件,来确定哪些蚂蚁会在端点相遇。

相关推荐

最新推荐

recommend-type

2020年考研数学二答题卡(A3打印).pdf

此次上传的是2020年考研数学二的答题卡模板pdf,希望能够帮助到大家。 不过2021年考研数学答题卡格式已改,望周知!
recommend-type

一种答题卡客观题识别算法.pdf

一种答题卡客观题识别算法: 网上阅卷系统;客观题识别算法;滑动窗口;加权平均灰度 适用于不同排版类型的答题卡客观题识别,鲁棒性强,识别精度高,适用于各种扫 描质量和不同填涂质量的答题卡。
recommend-type

基于图像的答题卡的判定与成绩统计(Matlab版论文)

这是使用Matlab对某通用答题卡的识别与成绩统计,是一篇本科毕业设计论文,完全自创,后补源码文件
recommend-type

新版软考高项论文答题纸.pdf

没有摘要的新版软考高项论文答题纸
recommend-type

答题辅助python代码实现

主要为大家详细介绍了答题辅助python代码实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

解释minorization-maximization (MM) algorithm,并给出matlab代码编写的例子

Minorization-maximization (MM) algorithm是一种常用的优化算法,用于求解非凸问题或含有约束的优化问题。该算法的基本思想是通过构造一个凸下界函数来逼近原问题,然后通过求解凸下界函数的最优解来逼近原问题的最优解。具体步骤如下: 1. 初始化参数 $\theta_0$,设 $k=0$; 2. 构造一个凸下界函数 $Q(\theta|\theta_k)$,使其满足 $Q(\theta_k|\theta_k)=f(\theta_k)$; 3. 求解 $Q(\theta|\theta_k)$ 的最优值 $\theta_{k+1}=\arg\min_\theta Q(
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。