牛客网小白月赛8 C题

2018-10-21  本文已影响0人  谈的还原性

题目大意

给你N个人,计算X从1到N的组合数与X之积的和
题目链接


分析:

其实这道题可以演算出X=1,2,3,4的结果,然后从中找出规律
X=1,Result=1
X=2,Result=4
X=3,Result=12
X=4,Result=32
Result的值肯定会和X有关系,所以Result的值除以X,就得出1,2,4,8的规律。

或者

可以根据题目的意思,推算出计算公式


image.png

当然知道规律之后还要用快速幂来取模


代码:

#include <iostream>
#include <math.h>
using namespace std;
const int Mod=1000000007;
typedef long long ll;
ll m_pow(ll x,ll n)
{
    if(n==0)
        return 1;
    ll res=m_pow(x*x%Mod,n/2);
    if(n&1)
        res=res*x%Mod;
    return res;
}
int main(int argc, char const *argv[])
{
    ll n;
    cin>>n;
    ll result=m_pow(2,n-1);
    result=(n*result)%Mod;
    cout<<result<<endl;
    return 0;
}

总结一些常用的数学结论:

image.png
上一篇下一篇

猜你喜欢

热点阅读