Codeforces Round #324 (Div. 2) B. Kolya and Tanya

来源:互联网 发布:curl php 可跳转 编辑:程序博客网 时间:2024/05/17 22:22

这里写图片描述

这里写图片描述

这里写图片描述

分析:
给你一个数n,让你构造出一个长度为3n的数列,其中每个数只能取1,2,3
只要存在某3个间隔分别为n的数之和为6,就是满足题意的序列。
问你这样的序列有多少。
快速幂搞一下
从反面计算,算不满足的序列,可知答案为3 ^ 2n - 7 ^ n

#include <iostream>#include <sstream>#include <iomanip>#include <vector>#include <deque>#include <list>#include <set>#include <map>#include <stack>#include <queue>#include <bitset>#include <string>#include <numeric>#include <algorithm>#include <functional>#include <iterator>#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#include <cctype>#include <complex>#include <ctime>typedef long long LL;const double pi = acos(-1.0);const long long mod = 1e9 + 7;using namespace std;LL modexp(LL a,LL b){    LL t = 1LL;    while(b != 0)    {        if(b % 2 == 1)            t = (t * a) % mod;        a = (a * a) % mod;        b /= 2;    }    return t;}int main(){    LL n;    scanf("%I64d",&n);    LL ans = modexp(27,n) - modexp(7,n) + mod;    ans %= mod;    printf("%I64d\n",ans);    return 0;}
0 0