NC231108. 小y的树
描述
求一颗层的满叉树,求任意两点之间距离和等于多少,答案对取模
树上两点距离: 沿着最短路径从u走到v经过的边的数量
层的满叉树:叶子节点到根的距离是,每个点都有个儿子
输入描述
一行两个正整数代表
输出描述
输出一行一个数代表答案
示例1
输入:
3 3
输出:
216
C++ 解法, 执行用时: 122ms, 内存消耗: 424K, 提交时间: 2022-02-25 13:26:02
#include<bits/stdc++.h> typedef long long ll; using namespace std; const ll MOD=1e9+7; ll pow2(ll a,ll b,ll mod){ll r=1;while(b){if(b&1)r=r*a%mod;a=a*a%mod;b>>=1;}return r%mod;} ll n,k,ans; int main(){ cin>>n>>k; for(int i=1;i<n;i++) ans=(ans+i*(n-i)%MOD*pow2(k,2*n-i-1,MOD))%MOD; cout<<ans; }