题解 P1634 【禽兽的传染病】

本蒟蒻的第三篇题解..其实第一篇没审过..第二篇交不上去,于是这也能算是第一篇吧

下面是正文emm

此题的核心其实就是个递推 每只禽兽每轮能传染 $x$ 只,被传染后的禽兽又会继续传染其他禽兽,因此我们循环每一轮,以 $now$ 作为当前被传染禽兽的数量。因此,经过每一轮传染后,被传染的禽兽数量就是当前被传染的禽兽数量 $(now)$ 加上新被传染的禽兽数量 $(now * x)$ 所以说每轮结束后,被传染的禽兽数量就是 $now * x + now$ 了

题目中说的范围在qword范围内,蒟蒻的我不知道什么意思...于是就开了个unsigned long long...实际上应该开long long就能过了叭

附上代码

#include <bits/stdc++.h>//万能头文件
using namespace std;//不加CE
typedef unsigned long long ull;
ull now = 1,x,n;
int main()
{
    scanf("%llu%llu",&x,&n);//顺便普及一下unsigned long long 用%llu可以读入
    while(n--)
    {
        now = now * x + now;//核心递推
    }
    printf("%llu",now);//输出
    return 0;
}

发表于 2019-08-29 15:04:45 in 题解