hi.传染病

编程题:计算91-DIVOC在k天内感染的乘积对722733748取模,涉及递推关系和模运算。
摘要由CSDN通过智能技术生成

[语言月赛 202403] 传染病

题目背景

新型病毒正在肆虐洛谷。

题目描述

91-DIVOC 正在广泛传播,珂学家 RyanLi 想要探究 91-DIVOC 的传染系数。

第一天有 a a a 个人被 91-DIVOC 感染,从第二天起,每个感染者都会向 q q q 个没有感染的人传播 91-DIVOC,使他们变为感染者。

举个例子,如果第一天有 3 3 3 人被感染,每个感染者每天向 2 2 2 个人传播病毒,那么第二天会有 3 × 2 3 \times 2 3×2 个人被感染。第三天会有 3 × 2 × 2 3\times 2\times 2 3×2×2 个人被感染 ⋯ \cdots 以此类推。

定义传染系数为每天被感染 91-DIVOC 的人数的乘积,RyanLi 需要你求出 k k k 天内的传染系数。由于这个数很大,你只需要输出它对 722733748 722733748 722733748 取模的结果。

输入格式

输入一行三个整数 k , a , q k,a,q k,a,q

输出格式

输出一行一个整数,表示答案。

样例 #1

样例输入 #1

3 3 2

样例输出 #1

216

提示说明

数据规模与约定

对于 20 % 20\% 20% 的数据, k ≤ 7 k \leq 7 k7 a = 2 a=2 a=2 q = 2 q=2 q=2
对于 50 % 50\% 50% 的数据, k ≤ 1 0 3 k \leq 10^3 k103
对于 100 % 100\% 100% 的数据, 1 ≤ k ≤ 1 0 6 1 \leq k \leq 10^6 1k106 1 ≤ a , q < 722733748 1 \leq a,q < 722733748 1a,q<722733748

代码内容

// #include <iostream>
// #include <algorithm>
// #include <cstring>
// #include <stack>//栈
// #include <deque>//队列
// #include <queue>//堆/优先队列
// #include <map>//映射
// #include <unordered_map>//哈希表
// #include <vector>//容器,存数组的数,表数组的长度
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
const ll p=722733748;

int main()
{
    ll k,a,q;
    cin>>k>>a>>q;
    k--;

    ll res,ans;
    res=ans=a;
    while(k--)
    {
        res*=q;
        res%=p;
        ans*=res;
        ans%=p;
    }

    cout<<ans<<endl;
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pretty Boy Fox

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值