Problem F 合并石子
合并石子
https://ac.nowcoder.com/acm/contest/9692/F
Problem F 合并石子
一共有 堆石子,故合并时产生 种情况;
第 次合并时共有 堆石子,故选取两堆的期望和为 ;
故消耗体力总和为 。
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define M 1000000007 ll ksm(ll a,ll p){ ll res=1; while(p){if(p&1){res=res*a%M;}a=a*a%M;p>>=1;}return res; } int i; ll n,res,tmp; int main(){ scanf("%d",&n); for(i=2;i<=n;i++){ res+=ksm(i,M-2)*n%M; } for(i=1;i<=n-1;i++){ res=res*i%M; } printf("%lld",res*2%M); }