[hdu6467]简单数学题
简单数学题
题解
题目已经说得很明显了,就是一道数学推导的题,虽然我也不知道为什么我会推错
容易得到,
,将两者相减
。
,可以通过这个求出
,
将其扩大2倍,再相减得
源码
#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<map>
using namespace std;
typedef long long LL;
const LL mo=1000000007;
LL n;
int qkpow(int a,LL s){
int t=1;
while(s){
if(s&1)t=1ll*a*t%mo;
a=1ll*a*a%mo;s>>=1;
}
return t;
}
signed main(){
while(scanf("%lld",&n)!=EOF)
printf("%lld\n",(1ll*(n-1LL)%mo*qkpow(2,n)%mo+1)%mo);
return 0;
}/*
F(n)=\sum_{i=1}^{n}\sum_{j=i}^{n}(i*C(i,j))
F(n+1)=\sum_{i=1}^{n+1}\sum_{j=i}^{n+1}(i*C(i,j))
F(n+1)-F(n)=\sum_{i=1}^{n+1}i*C(i,n+1)
=\sum_{i=1}^{n+1} (n+1)!/((i-1)!(n-i+1)!)
=(n+1)\sum_{i=1}^{n+1}C(i-1,n)
=(n+1)\sum_{i=0}^{n}C(i,n)
=(n+1)2^n
F(n)-F(n-1)=n*2^(n-1)
F(n)=\sum_{i=1}^{n}i*2^(i-1)
2F(n)=\sum_{i=1}^{n}i*2^i
F(n)=n*2^n-\sum_{i=0}^{n-1}2^i
F(n)=n*2^n-(2^n-1)
F(n)=(n-1)2^n+1
*/

浙公网安备 33010602011771号