问题标题: 洛谷:P1634 禽兽的传染病

0
0
已解决
棠梨煎雪
棠梨煎雪
中级守护
中级守护

R6112287 评测详情:

评测状态

Unaccepted  10

用时: 0ms / 内存: 2386KB

编译信息

编译成功

没有编译信息

测试点信息#1AC0ms/2367KB  #2WA
#3WA            #4WA
#5WA            #6WA
#7WA            #8WA
#9WA            #10WA

#include <iostream>
#include <cmath>
using namespace std;
int main(){
    int x,n;
    cin>>x>>n;
    cout<<pow(x+1,n);
    return 0;
}

 


1
已采纳
栾峻岩
栾峻岩
初级天翼
初级天翼
从1到y循环
s*=(x+1);
输出s;

 

0
王梓澳
王梓澳
中级光能
中级光能

首先分析题目,每次感染x个禽兽,那么肯定和x的次方有关系,n轮就是n次。

至于+1的原因是因为一开始只有一个禽兽,所以要+1,就可以得到

Ans=(x+1)^nAns=(x+1)n

对于x的y次方,可以用到快速幂来进行快速求解

快速幂,是一种快速求出x的y次方的方法,其时间复杂度为 O(log₂N)比pow快

而且在费马小定理中也有用到快速幂的,不知道的请自行度娘。

核心代码:

scanf("%lld%lld",&x,&n);//输入
printf("%lld",ksm(x+1,n));//输出

函数里:

    long long ans=1;//初始为1
    while(y)
    {
        if(y&1) ans*=x;
        x*=x;
        y>>=1;//快速幂模板
    }
    return ans;//返回

 

0
0
我要回答