Codeforces Round #728 (Div. 2)

news/2024/7/10 13:29:59 标签: dfs, jquery, swift, init, react native
c排序再累加最后去个尾求个和
#include<bits/stdc++.h>
using namespace std;
#define int long long
typedef long long ll;
const int mod=1e9+7,inv2=(mod+1)/2;
int ksm(int b,int n){
    int res=1;
    while(n){
        if(n&1) res=1ll*res*b%mod;
        b=1ll*b*b%mod; n>>=1;
    }
    return res;
}
int ans,dis[405],dep[405],f[405][405],c[405][405],fa[405][10];
vector<int> e[405];
vector<int> vec[405];
void dfs(int u,int fath){
    vec[u].clear(); vec[u].push_back(u);
    dep[u]=dep[fath]+1;
    for(auto v:e[u])
    {
        if(v!=fath)
        {
            dfs(v,u);
            for(auto x:vec[v])
            {
                for(auto y:vec[u])
                {
                    int a=x,b=y;
                    if(a<b) swap(a,b);
                    ans=(ans+f[dep[a]-dep[u]][dep[b]-dep[u]])%mod;
                }
            }
            for(auto x:vec[v])
            {
                vec[u].push_back(x);
            }
        }
    }
}
int fac[405],inv[405];
void init(int n){
    fac[0]=1;
    for(int i=1;i<=n;++i)
        fac[i]=1ll*fac[i-1]*i%mod;
    inv[n]=ksm(fac[n],mod-2);
    for(int i=n-1;i>=0;--i)
        inv[i]=1ll*inv[i+1]*(i+1)%mod;
}
int C(int n,int m){
    if(n<0||m<0||n<m) return 0;
    return 1ll*fac[n]*inv[m]%mod*inv[n-m]%mod;
}
void solve(){
    int n;cin>>n;
    for(int i=1;i<n;++i){
        int u,v;cin>>u>>v;
        e[u].push_back(v),e[v].push_back(u);
    }
    init(n+n);
    for(int y=1;y<=n;++y) f[0][y]=1;
    for(int i=1;i<=n;++i)
        for(int j=1;j<=n;++j)
            for(int k=0;k<j;++k)
                f[i][j]=(f[i][j]+1ll*ksm(inv2,i+k)*C(i+k-1,k))%mod;
    for(int k=1;k<=n;++k)
        dfs(k,0);
    cout<<1ll*ans*ksm(n,mod-2)%mod;
}
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    int T=1;
    //cin>>T;
    while(T--) solve();
    return 0;
}
D

http://www.niftyadmin.cn/n/1082345.html

相关文章

PHP清除列数据,php动态读取数据清除最右边距的方法

需求效果一行3栏&#xff1a;场景模拟&#xff1a;同事给了我这么一段静态代码如下&#xff1a;Documentli,ul{padding: 0;margin:0;list-style: none;}.box{width:1000px;background: #ddd;height:500px;}.box li{margin:0 50px 20px 0;background:red;height:30px;width:300p…

面试智力题:天平称球 .

题目&#xff1a;现有12个球&#xff0c;其中有一个球和其他的球重量不一样&#xff0c;但是外形还是一样的&#xff0c;现在要求你用一个天平在只称3次的情况下找出不一样的这个球来?如果换成13个球那又怎么样呢&#xff1f; 题目自己很早以前就看过&#xff0c;但是答案当时…

对面向对象设计原则的总结

正如牛顿三大定律在经典力学中的位置一样&#xff0c;“开-闭”原则&#xff08;Open-Closed Principle&#xff09;是面向对象的可复用设计&#xff08;Object Oriented Design或OOD&#xff09;的基石。其他设计原则&#xff08;里氏代换原则、依赖倒转原则、合成/聚合复用原…

Linux 查找当前目录大文件,Linux 如何查找大文件

原标题&#xff1a;Linux 如何查找大文件点击上方 “公众号”可以订阅哦&#xff01;近期&#xff0c;频繁发现模块出现大量写日志的问题&#xff0c;且没有日志压缩策略和保留历史文件的策略&#xff0c;导致日志文件大量膨胀&#xff0c;另外还发现一些组件大量写文件(非日志…

linux cd 删除文件,Linux目录的创建与删除命令

mkdir命令mkdir 用于创建一个或多个目录语法:语法是mkdir [命令开关] 目录命令开关:-m文目录设置操作权限-p如果上级目录不存在&#xff0c;同时创建它们。-v输出创建的每个目录的信息示例:Create directory:mkdir test上述命令将创建目录 ‘test’.创建目录并设置访问权限:mkd…

Codeforces Round #730 (Div. 2)

A: Exciting Bets abs(a-b)必然是可取最大公约数的最大值&#xff0c;因为对于任何两个数a-p,b-p (a>p&&b>p) 假设k__gcd(a-p,b-p) 则(a-p)%k0&&(b-p)%k0。设an1kp,bn2*kp 所以b-an2k-n1kk*(n2-n1)(n1!n2) 因为n2-n1>1&#xff0c;所以当n2-n11时k取…

行列转置有时利于排版和阅读

由于人们的视觉记忆有限&#xff0c;当遇到横向信息很复杂时&#xff0c;在可能的情况下&#xff0c;请尽量减少列的数量&#xff0c;如果需要的话&#xff0c;可以将表格分为两个或几个&#xff0c;这样能让阅读者尽可能少的记忆和回忆信息。 还可以将它们“转置”&#xff0…

linux 进程通信 开发,linux应用程序开发-进程通信(IPC)

IPCwhy:1.数据传输2.资源共享目的&#xff1a;3.通知事件4.进程控制发展&#xff1a;1.UNIX进程间通信2.基于SYStem V3.POSIX方式分类&#xff1a;1.pipe(管道) FIFO(有名管道)2.signal3.消息队列4.共享内存5.信号量6.套接字(socket)管道通信&#xff1a;单向&#xff0c;先进先…