CodeForce185A 数学+快速幂取模

来源:互联网 发布:小旭音乐 知乎 编辑:程序博客网 时间:2024/05/29 06:45

A. Plant“`
A题必然不会是一道难题。
题目的模型是我们平时最熟悉的划分三角形问题,求的是n次划分后头向上的三角形的个数
枚举找规律猜想,发现向上的三角形的个数为:
1+2+3+到2^n=(1+2^n)*2^(n-1)
根据题目的范围,这是个大数,需要进行快速幂取模运算
AC代码:

/*************************************************************************    > File Name: CF185A.cpp    > Author:     > Mail:     > Created Time: 2016/9/20 1:19:17 ************************************************************************/#include <cstdio>#include<iostream>const int mod= 1000000007;using namespace std;typedef long long LL;LL quickpow(__int64 a,__int64 b){    LL ans=1;    while(b>0){        if(b&1)            ans=ans*a%mod;        b=b>>1;        a=(a%mod)*(a%mod)%mod;    }    return ans;}int main(){    //freopen("input.txt","r",stdin);    __int64 n;    while(~scanf("%I64d",&n)){        if(n==0){ //特判n=0的情况            printf("1\n");            continue;        }        LL res;        res=((1+quickpow(2,n))%mod)*(quickpow(2,n-1)%mod);        res%=mod;        printf("%I64d\n",res);    }    return 0;}

“`

0 0
原创粉丝点击