鱼C论坛

 找回密码
 立即注册
查看: 108|回复: 1

阿兔转经计算-来源牛客

[复制链接]
发表于 2024-12-5 11:58:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这是一道编程题,以下是题目要求的文字描述:

### 题目描述
人们认为转经就相当于念经,是忏悔往事、消灾避难、修积功德的最好方式。
阿兔也有一只转经筒,转经筒上有n个数字:a_1, a_2, ......., a_n。接下来,阿兔将持续转经\(k\)天,并在每次转经时积累功德。
积功德的规则如下:
1. 每次转经时,阿兔会依次遍历转经筒上的\(n\)个数字。对于每个数字,阿兔可以选择接受该数字所对应的功德值,并获得该数值,随后该数字的功德值会减少1
2. 阿兔会重复这一过程,直到完成\(r\)次转经。

### 输入描述
1. 第一行包含两个正整数\(n,k)分别表示转经筒的长度和转经的天数。
2. 第二行包含n个正整数(),表示转经筒上的数字。
3. 第三行包含k个正整数,表示阿兔每天进行转经的次数。

### 输出描述
输出k行,每行包含一个整数,表示阿兔当天能够获得的最大功德值,结果需要对(10^9 + 7)取模。

### 示例1
- **输入**
  - 第一行:4 5
  - 第二行:1  2 4 3
  - 第三行:0 1 2 3 100000
- **输出**
  - 第一行:0
  - 第二行:10
  - 第三行:16
  - 第四行:19
  - 第五行:20
- **说明**
  - 对于第三天,阿兔可以获得的功德为((1 + 2 + 4+ 3)+(0 + 1 + 3 + 2)=16
  - 对于第四天,阿兔可以获得((1 + 2 + 4 + 3)+(0 + 1 + 3 + 2)+(0 + 2 + 1)=19
兔子2.png
兔子1png.png
兔子1png.png
兔子2.png
兔子2.png
兔子1png.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-12-5 11:58:56 | 显示全部楼层
这道题目可以通过模拟的方式来解决。我们需要逐天计算阿兔能够获得的最大功德值。以下是解决思路:

1. **初始化**:读取输入数据,分别获取转经筒的长度\(n\)、天数\(k\)、转经筒上的数字列表,以及每天的转经次数列表。

2. **模拟转经过程**:
   - 对于每一天,初始化一个临时数组来存储当前转经筒的状态。
   - 根据当天的转经次数,重复进行转经操作。
   - 每次转经时,遍历转经筒上的数字,计算当天能够获得的功德值,并更新转经筒上的数字(每个数字减1,最小为0)。

3. **计算功德值**:
   - 对于每次转经,计算当前转经筒上的数字之和,累加到当天的功德值中。
   - 由于结果需要对\(10^9 + 7\)取模,确保每次累加后都进行取模操作。

4. **输出结果**:输出每一天的最大功德值。

以下是伪代码实现:
输入 n, k
输入 转经筒上的数字数组
输入 每天的转经次数数组

for 每一天 in 1 to k:
    初始化 当前转经筒 = 转经筒上的数字数组
    初始化 当天功德值 = 0
    
    for 转经次数 in 每天的转经次数:
        初始化 当前功德值 = 0
        
        for 每个数字 in 当前转经筒:
            当前功德值 += 数字
            数字 = max(0, 数字 - 1)
        
        当天功德值 += 当前功德值
        当天功德值 %= (10^9 + 7)
    
    输出 当天功德值

通过这种方式,我们可以逐天计算出阿兔能够获得的最大功德值。


以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-2-5 19:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表