列表

详情


NC231108. 小y的树

描述

求一颗n层的满k叉树,求任意两点之间距离和等于多少,答案对取模

树上两点距离: 沿着最短路径从u走到v经过的边的数量

n层的满k叉树:叶子节点到根的距离是n-1,每个点都有k个儿子

输入描述

一行两个正整数代表n,k

输出描述

输出一行一个数代表答案

示例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;
}

上一题