题解 | 牛妹的位运算

牛妹的位运算

https://www.nowcoder.com/practice/7f131dd26f4043839d0342ed6f65ddf3

// 属于是猜对的
/*
	用快速幂计算4的整数次幂然后累加到一起
	具体证明方法采用数学归纳法???
	用等比求和不行,因为取模意义下不能进行除法运算
*/
#include <stdio.h>
#define ll long long 
#define MOD 1000000007
ll rd()
{
    ll rs = 0,c = getchar();
    while (c  < '0'||c > '9') c = getchar();
    while (c >='0'&&c <= '9')
    {
        rs = (rs<<3)+(rs<<1)+c-'0';
        c = getchar();
    }return rs;
}
void wt(ll t)
{
    if (t > 9)wt(t/10);
    putchar(t%10|48);
}
ll qp(ll k)
{
    ll rs = 1,b = 4;
    while (k)
    {
        if (k&1)
            rs = (rs*b)%MOD;
        b = (b*b)%MOD;
        k>>=1;
    }return rs;
}
void solve()
{
    ll k = rd(),rs = 0;
    for (ll i = 0;i < k;i++)
    {rs= (rs+qp(i))%MOD;}
    wt(rs);
}

int main() {
    solve();    
    return 0;
}

RogeAustine题解系列 文章被收录于专栏

这里是RogeAustine的题解专栏,里面包含的题目都是十分典型的经典题目。

全部评论
#include<iostream> #include<vector> #include<string> #include<algorithm> using namespace std; typedef long long ll; ll mod=1e9+7; ll ny= 333333336; ll qmi(ll a, ll b) { ll res=1; while (b) { if (b % 2 != 0) { res = res * a % mod; } b/=2; a=a*a%mod; } return res; } int main() { int n;cin>>n; // cout << (qmi(4, n) - 1)*qmi(3,mod-2)%mod; cout << (qmi(4, n) - 1)*ny%mod; return 0; }</algorithm></string></vector></iostream>
点赞 回复 分享
发布于 昨天 01:01 河北

相关推荐

评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务