T1:
题意:求一棵树上两条点不交路径,使它们的点权之和最大;
思考过程:联想到了一个相似的问题——树上求k条边不交路径的最大边权和,想到了拆点为边,很快发现不对。考虑到仅有两条边于是先求出一条直径,再分类讨论看第二条路是否经过第一条直径,不经过则bfs求最大值,经过则对直径上每一个点求一个最长的、以它为端点的、不经过直径上点的链,然后贪心求最大值。
题解:同思路;
T2:
题意:一个完全图,一课树,完全图上两点之间的距离等于树上两点之间的距离,在完全图上求最长哈密顿路径;
思考过程:没想拿满分,考虑对于60%的数据N<=1e3,想到了暴力见图然后二分图带权匹配;后来发现如果选了u->v的路就不能选v->u的路,考虑费用流,然后想了各种建图的操作,发现总有一些小问题,最后几分钟退而求其次想拿30分也没拿到(小测试不想骗分);
题解:不要从完全图上讨论,考虑树上的情况。先考虑哈密顿回路,树上每一条边的选取上界(一定可取)是它所连接的两棵子树的较小size*2,而哈密顿路径只需删一条边就可以了,而这条边显然在它连接重心时最优;
T3:
题意:一个图,每个点有一个高度,每条边有一个长度,有一个初始高度,从1走到n,走一个长度会下降一个高度,在点上可以花时间调整高度,问都到n点的顶部的最短时间;
思考过程:无;
题解:考虑高度为0时,每次向上爬路径长度就行了。有高度时就直接跳(如果跳过去超过v点的高度在单独考虑),一直到高度为0。跑最短路;
原文地址:https://www.cnblogs.com/Cduiz/p/11618812.html
时间: 2024-11-08 12:17:18