寒假翻译四

题目四

  1. A Random Code Problem

原题链接:https://codeforces.com/problemset/problem/1626/F

题目翻译:

你会得到一个数组,和一个数字k。你可以运行如下代码。

long long ans = 0; // create a 64-bit signed variable which is initially equal to 0
for(int i = 1; i <= k; i++)
{
  int idx = rnd.next(0, n - 1); // generate a random integer between 0 and n - 1, both inclusive
                                // each integer from 0 to n - 1 has the same probability of being chosen
  ans += a[idx];
  a[idx] -= (a[idx] % i);
}

你的任务是计算变量ans在运行代码结束之后期待的值。注意输入是由特殊的输入规则产生的。(见输入格式部分)

输入:只有一行包含六个数字 n, a0, x, y, k 和 M (1≤n≤107; ,1≤a0,x,y<M≤998244353;1≤k≤17).

数组a在输入中是按如下标注建立的:a0在输入中已经给出来了。对于接下来的每一个ai,都可以通过计算得出 ai=(ai−1⋅x+y)modM.

输出:让期待的值在变量ans运行完代码后成为E。他可以体现E乘n的k次方是一个常数。你必须按模的998244353输出结果。

例子:

3 10 3 5 13 88

382842030

2 15363 270880 34698 17 2357023

319392398

注意:第一个例子中的测试数组是[10,35,22];第二个是 [15363,1418543].

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值