CF1037F.Maximum Reduction
省选/NOI-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Given an array a of n integers and an integer k (2≤k≤n), where each element of the array is denoted by ai (0≤i<n). Perform the operation z given below on a and print the value of z(a,k) modulo 109+7.
function z(array a, integer k):
if length(a) < k:
return 0
else:
b = empty array
ans = 0
for i = 0 .. (length(a) - k):
temp = a[i]
for j = i .. (i + k - 1):
temp = max(temp, a[j])
append temp to the end of b
ans = ans + temp
return ans + z(b, k)
给定一个包含 n 个整数的数组 a 和一个整数 k(2≤k≤n),其中数组的每个元素记为 ai(0≤i<n)。对数组 a 执行如下函数 z,并输出 z(a,k) 对 109+7 取模的结果。
函数 z(数组 a,整数 k):
若 length(a)<k:
返回 0
否则:
b= 空数组
ans=0
对 i=0 到 length(a)−k:
temp=a[i]
对 j=i 到 i+k−1:
temp=max(temp,a[j])
将 temp 追加至数组 b 末尾
ans=ans+temp
返回 ans+z(b,k)
输入格式
The first line of input contains two integers n and k (2≤k≤n≤106) — the length of the initial array a and the parameter k.
The second line of input contains n integers a0,a1,…,an−1 (1≤ai≤109) — the elements of the array a.
输入的第一行包含两个整数 n 和 k(2≤k≤n≤106)——分别为初始数组 a 的长度和参数 k。
输入的第二行包含 n 个整数 a0,a1,…,an−1(1≤ai≤109)——即数组 a 的元素。
输出格式
Output the only integer, the value of z(a,k) modulo 109+7.
输出唯一的整数,即 z(a,k) 对 109+7 取模的值。
输入输出样例
输入#1
3 2 9 1 10
输出#1
29
输入#2
5 3 5 8 7 1 9
输出#2
34
说明/提示
In the first example:
- for a=(9,1,10), ans=19 and b=(9,10),
- for a=(9,10), ans=10 and b=(10),
- for a=(10), ans=0.
So the returned value is 19+10+0=29.
In the second example:
- for a=(5,8,7,1,9), ans=25 and b=(8,8,9),
- for a=(8,8,9), ans=9 and b=(9),
- for a=(9), ans=0.
So the returned value is 25+9+0=34.
在第一个例子中:
- 对于 a=(9,1,10),ans=19,且 b=(9,10);
- 对于 a=(9,10),ans=10,且 b=(10);
- 对于 a=(10),ans=0。
因此返回值为 19+10+0=29。
在第二个例子中:
- 对于 a=(5,8,7,1,9),ans=25,且 b=(8,8,9);
- 对于 a=(8,8,9),ans=9,且 b=(9);
- 对于 a=(9),ans=0。
因此返回值为 25+9+0=34。
输入解题思路,AI测评打分。不知道怎么写?