首页 > 其他 > 详细

codeforces 584b 超大型指数乘法取模o(logn)

时间:2016-07-11 13:54:33      阅读:200      评论:0      收藏:0      [点我收藏+]

题意是怎么理解的我也不知道,就抄了一下

题目大意:给出n个等边三角形,每个顶点都可以是1~3中的一个数,一个等边三角形三个顶点的总和不能是6。在n个三角形中只要有一个等边三角形满足条件,当前情况就是合格的,问有多少种合格的情况。

解题思路:所有的情况27n,没有一个三角形满足条件7n,27n7n

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <cstdlib>
using namespace std;

typedef long long ll;
const ll mod = 1e9 + 7;

ll quick_mod(ll a, ll b) {  
    ll ans = 1;  
    while(b) {  
        if(b&1) ans = (ans * a) % mod;  
        b >>= 1;  
        a = (a * a) % mod;  
    }  
    return ans;  
}  

int main() {
    ll n;
    scanf("%lld", &n);
    ll A = quick_mod(27, n);
    ll B = quick_mod(7, n);
    printf("%lld\n", ((A % mod - B % mod) + mod) % mod);
    return 0;
}

 

codeforces 584b 超大型指数乘法取模o(logn)

原文:http://www.cnblogs.com/shimu/p/5659801.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!