摘要: 传送门 设dp[i][j]为从1到i长度为最短路+j的路径数量,dis1为从1到每个点的最短距离,disn为从n到每个点的最短距离。先不考虑0边,dp[u][j]可以转移到v的dis[u]+w(u,v)-dis[v]+j,即dp[u][j]->dp[v][dis[u]+w(u,v)-dis[v]+j 阅读全文
posted @ 2019-11-13 22:01 Chloris_Black 阅读(153) 评论(0) 推荐(1) 编辑
摘要: 传送门 首先不考虑带环的仙人掌,如果只是一棵普通的树,可以通过dp求每棵子树中的最长链和次长链求树的直径。 那么如果dfs的时候遇到了环,应该用环上的两点挂着的最长链加上两点间的距离来更新树的直径,并用环上一点的最长链加上它到环的根的距离来更新环的根的最长链。 选择环上两点来更新直径,为了考虑到所有 阅读全文
posted @ 2019-11-13 21:27 Chloris_Black 阅读(165) 评论(0) 推荐(2) 编辑
摘要: 传送门 pts85/90(90应该是个意外,第一次交是90之后都是85了): 优先队列模拟题意 #include<iostream> #include<cstdio> #include<queue> using namespace std; int n,m,q,u,v,t,tim; double p 阅读全文
posted @ 2019-11-13 20:30 Chloris_Black 阅读(135) 评论(0) 推荐(1) 编辑