題解:T103342 Problem A. 最近公共祖先

題目連接c++

題目大意 求每一個點對的lca深度的和spa

以每一層分析,得出通式code

因爲1e9的數據範圍要化簡表達式獲得O(能過)blog

瞎搞後就是2^(2n+2)-(4n+2)*2^n-2ci

code:get

#include<bits/stdc++.h>
using namespace std;
const long long mod = 1e9+7;
long long n;
long long ksm(long long aa,long long b) {
    long long ans=1;
    while(b) {
        if(b&1) ans=((ans%mod)*(aa%mod))%mod,ans%=mod;
        aa*=1LL*aa;
        aa%=mod;
        b>>=1;
    }
    return ans;
}
int main() {
    cin>>n;
    cout<<(ksm(2,2*n+2)-((4*n%mod+2)*ksm(2,n))%mod-2+mod)%mod;//處理負數加膜數取膜
    return 0;
}

相關文章
相關標籤/搜索