牛客网小白月赛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;
}