题目链接:点击打开链接
题意:求从1到2的路径中, 使得最长路尽量小。
细节参见代码:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define Max(a,b) (...
分类:
其他好文 时间:
2016-03-05 11:51:02
阅读次数:
259
刚学了差分约束系统。 差分约束就是给你一堆不等式,求一个满足条件的解。比如x-y>=z,x-y<=z这些。对于大于等于的,我们可以转化为从y到x的单向最长路径,小于等于的则是最短路径。我们还要努力找到题目中的隐藏条件,或者自己建立一个原点什么的,这样才可以做。要注意的是,差分约束系统中通常会出现负数
分类:
其他好文 时间:
2016-03-03 19:20:31
阅读次数:
84
首先答案一定是包含直径某个端点的一个连通块里所有边权值之和,设直径为$AB$,以$A$和$B$分别为根进行处理。 首先按照最长路法则将这棵树进行树链剖分,那么每个叶子的贡献为它与它所在链顶端的点的距离。 将叶子按贡献从大到小排序,并求出$h[x]$表示$x$子树内叶子排名的最小值。 对于询问$(x,
分类:
其他好文 时间:
2016-03-01 00:41:26
阅读次数:
302
题意:有n个立方体,要堆成一个尽量高的主子,每个立方体上面放的立方体的长宽都严格小于下面,每个立方体有无限个 分析:我的做法是,每个立方体最多有6种状态,那么也就拥有6n个固定长宽高的立方体,那么这就是一个DAG上的最长路,6n个正方体,O(n^2)的算法, 很简单,详情见代码 #include<b
分类:
其他好文 时间:
2016-02-27 22:08:29
阅读次数:
248
线段树+spfa求最长路。逆向思维,从最底下一块板子建图。需要注意的是任何一个板子掉落下面再无板子,此时都可以看做一个终结状态。 1 /* 3016 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 #in...
分类:
其他好文 时间:
2015-12-23 14:29:42
阅读次数:
221
2013NOIP普及组压轴题。其实只要想到这个车子没停的站肯定比停的站级别低,拓扑排序,在节点入队时dis[e[i].v]=dis[head]+1维护最长路即可。但要注意此题含有大量重边,若不判重可能会tle掉。#include#include#include#include#include#def...
分类:
其他好文 时间:
2015-12-20 20:39:49
阅读次数:
166
题目大意:给N个点,求每个点的与其他点距离最大值很经典的树形dp...很久前就想写来着...看了陈老师的code才会的...mx[x][0], mx[x][1]分别表示x点子树里最长的2个距离, dfs一遍得到. mx[x][2]表示从x的父亲到x的最长路径长度, 也是dfs一遍得到(具体看代码)。...
分类:
Web程序 时间:
2015-12-13 21:40:30
阅读次数:
275
第一眼看到题目被吓傻。。maya有向图上单源最长路。。?后来仔细理解题意发现。。抢了一个ATM中的现金后这个ATM中就没有现金了。。然后我们可以想到,可以在某个强联通分量中不断绕圈抢劫!直到所有的现金全部被抢完。。毫不犹豫打个Tarjan缩点上去,每个点的点权是该点对应的强连通分量中所有点的点权(A...
111 - History Grading LCS103 - Stacking Boxes 最多能叠多少个box DAG最长路10405 - Longest Common Subsequence LCS674 - Coin Change 全然背包求方案数10003- Cutting Sticks 区...
分类:
编程语言 时间:
2015-12-10 10:56:51
阅读次数:
208
传送门给n个点, 初始有m条边, q个操作。每个操作有两种, 1是询问点x所在的连通块内的最长路径, 就是树的直径。 2是将x, y所在的两个连通块连接起来,并且要合并之后的树的直径最小,如果属于同一个连通块就忽视这个操作。先dfs出每个连通块的初始直径, 然后合并的话就是len[x] = max(...
分类:
其他好文 时间:
2015-12-02 20:27:06
阅读次数:
218