最小生成树+DFS求任意两点间平均路径长度 ——Abandoned country (HDU 5732)( 2016Multi-University Training Contest 1 1001 )

使用Kruskal算法构建唯一最小生成树,通过DFS计算每条边在所有路径中出现的频率,进而求得任意两点间的平均路径长度。详细解题过程包括边的记录和DFS搜索策略。
摘要由CSDN通过智能技术生成
  • 题目链接:
    http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1001&cid=704

  • 分析:
    点数最大为100000,所以最小生成树应该用Kruskal。因为任意两点的距离不相等,所以最小生成树唯一,那么期望也就是唯一的。而这个期望即任意两点距离的平均值。我们先统计出每条边在所有路径中被用到的次数,用它乘以这条边的权重,加在一块然后除以总路径数(n×(n-1)/2)就能得到结果。

  • 题解:

    1. 在kruskal的取边操作里,如果某条边符合条件被选中,这时候加一个操作,把这条边记录到数组里(一条边从两个方向要被记录两次),然后用一个add函数将每条边加入到新的结构体里面,这个结构体的序号是边的序号,里面存储这条边的下一个节点,以及这个边的权重,然后记录这条边的下一条边的序号。
    2. DFS函数:任取一个点作为根节点开始搜索,对每个点i记录其子树包含的点数(包括其自身),设点数为sum[i],则i的父亲一侧的点数即为n-sum[i]。两者相乘就是这条边被用到的次数,边遍历边统计。

      • P.S. :此处DFS以及add函数的详细分析可以参考 树形DP中的DFS函数与head数组。
        DFS 代码:
struct edge
{
    int from,to,w,next;
}e[1000050];

void add(int from,int to,int w) 
{
    e[cont].to=to;
    e[cont].w=w;
    e[cont].next=head[from];
    head[from]=cont++;
}
ll Dfs(int u)
{
    
### 回答1: -plugin是什么? A:mysql-cj-abandoned-connection-cleanup-plugin是一个MySQL插件,它用于自动关闭已经被应用程序丢弃的连接。它可以帮助管理员减少数据库服务器上的资源消耗和性能问题。该插件通过一个“拦截器”模式来捕捉被应用程序丢弃的连接,并在事先定义的时隔后关闭这些连接。 ### 回答2: mysql-cj-abandoned-connection-cleanup是一个MySQL Connector/J库中的参数,用于在连接池中清理已被废弃的连接。 MySQL Connector/J是一个用于Java程序连接MySQL数据库的驱动程序。在使用连接池时,连接池会提供一组已经建立好的数据库连接,供Java程序使用,以提高数据库连接的效率和性能。 然而,在某些情况下,可能会出现一些连接没有被正确关闭的情况,这些连接就被视为废弃的连接。废弃的连接可能导致连接池中的连接资源被占用,无法再被其他程序使用,从而浪费了系统资源。 为了解决这一问题,MySQL Connector/J引入了mysql-cj-abandoned-connection-cleanup参数。当设置为true时,默认为false,此参数会开启废弃连接的自动清理功能。一旦开启,连接池会定期检查已分配的连接是否已经被释放,如果发现连接已经被废弃,则会将其关闭并从连接池中移除。 使用mysql-cj-abandoned-connection-cleanup参数可以有效地解决废弃连接导致的问题,提高连接池的使用效率和资源利用率。但需要注意的是,设置过于频繁的检查时可能会对系统性能产生一定的影响,因此在设置时需要根据具体的场景和需进行权衡和调整。 总之,mysql-cj-abandoned-connection-cleanup参数在MySQL Connector/J库中扮演着清理废弃连接的重要角色,通过设置此参数可以自动检测和清理掉废弃的连接,提高连接池的性能和资源利用率。 ### 回答3: mysql-cj-abandoned-connection-cleanup是MySQL Connector/J JDBC驱动程序中的一个功能,用于清理连接池中被废弃的连接。 在使用连接池管理数据库连接时,有时候会发生连接被废弃但未被正确关闭的情况。这可能是因为应用程序在使用连接后忘记关闭连接,或者因为网络或服务器等原因导致连接失效。如果这些废弃的连接不得及时清理,会占用服务器资源,导致性能下降甚至崩溃。 为了解决这个问题,MySQL Connector/J JDBC驱动程序引入了mysql-cj-abandoned-connection-cleanup功能。当启用这个功能时,MySQL Connector/J会定期检查连接池中的连接,并识别那些被废弃的连接。被认定为废弃的连接是指从连接被创建后一段时内未被使用的连接。 一旦识别出被废弃的连接,mysql-cj-abandoned-connection-cleanup功能会自动将这些连接关闭,以释放服务器资源。这样可以保持连接池的健康状态,提高应用程序的性能和可靠性。 为了启用mysql-cj-abandoned-connection-cleanup功能,可以在应用程序的JDBC连接字符串中添加如下参数:abandonedConnectionCleanup=true。启用该功能后,可以通过设置一些其他参数来调整清理废弃连接的策略,如连接被认为废弃的超时时和清理频率等。 总之,mysql-cj-abandoned-connection-cleanup功能是MySQL Connector/J JDBC驱动程序中的一个重要功能,用于自动清理连接池中被废弃的连接,以提高应用程序的性能和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值