摘要: 十分感人的一道题。。虚树+倍增。。 想了半天发现我竟然会写?而且似乎想对了。。。。然而细节打挂调了一个下午>_< 首先把虚树建出来,然后在虚树上跑两遍dfs求出每个点最接近的议事处与距离,再然后计算虚树上每一条边对答案的贡献。。 令mndis[x]表示点x离最近议事处的距离,mnpos[x]表示点x 阅读全文
posted @ 2016-02-13 16:57 czllgzmzl 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 单调队列优化。。。f[k][i][j]表示k个时间段过后,走到点(i,j)时,最多已走过了多少个格子。 因为每个时间段内的方向都是一样的,所以用单调队列优化一下就好了。。。 这题其实就是个多重背包。。一段时间段的长度就是背包容量,而点(i,j)往某个方向最多能走多少格就是物品的数目,物品价值都为1. 阅读全文
posted @ 2016-02-13 11:18 czllgzmzl 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 题目要求最小路径覆盖。。DAG的最小路径覆盖=最长反链=n-对应二分图最大匹配数。。 反链:一些点的集合,使得任意两点之间不存在路径。最长反链:反链里面节点数的最大值。 一开始还以为要跑网络流。。。最后根据黄学长的题解可得,这题应该求的是最长反链TAT 因为是只能往下或者往右的网格图,所以反链的点一 阅读全文
posted @ 2016-02-13 00:10 czllgzmzl 阅读(499) 评论(0) 推荐(0) 编辑