题解 P1634 【禽兽的传染病】

地铁dixiatielu

2019-08-29 15:04:45

Solution

#### 本蒟蒻的第三篇题解..其实第一篇没审过..第二篇交不上去,于是这也能算是第一篇吧 下面是正文emm ------------ 此题的核心其实就是个递推 每只禽兽每轮能传染$x$只,被传染后的禽兽又会继续传染其他禽兽,因此我们循环每一轮,以$now$作为当前被传染禽兽的数量。因此,经过每一轮传染后,被传染的禽兽数量就是当前被传染的禽兽数量$(now)$加上新被传染的禽兽数量 $(now * x)$ 所以说每轮结束后,被传染的禽兽数量就是$now * x + now$了 题目中说的范围在qword范围内,蒟蒻的我不知道什么意思...于是就开了个unsigned long long...实际上应该开long long就能过了叭 ## 附上代码 ```cpp #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; } ```