摘要: 按层dp,f[i][j]表示已扩展i子集的节点当前在第j层的最小代价,预处理点集间距离即可。 阅读全文
posted @ 2018-11-08 20:20 Gloid 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 跑一遍dij根据最短路DAG进行拓扑排序,按拓扑序dp即可。wa了三发感觉非常凉。 阅读全文
posted @ 2018-11-08 19:34 Gloid 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 搞一个栈模拟即可。对比一下和一年前考场上的代码233 阅读全文
posted @ 2018-11-08 17:29 Gloid 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 看到比值先二分答案。于是转化成一个非常裸的树形背包。直接暴力背包的话复杂度就是O(n2),因为相当于在lca处枚举每个点对。这里使用一种更通用的dfs序优化树形背包写法。https://www.cnblogs.com/zzqsblog/p/5537440.html 即设f[i][j]为在dfs序第i 阅读全文
posted @ 2018-11-08 16:13 Gloid 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 对反图跑最短路求出每个点到终点的最短路径,令其为估价函数大力A*,第k次到达某个点即是找到了到达该点的非严格第k短路,因为估价函数总是不大于实际值。bzoj可能需要手写堆。正解是可持久化可并堆,至今是第二次见到这个那当然是不学啦。 阅读全文
posted @ 2018-11-08 12:47 Gloid 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 注意到模数被给出且非常小,做法肯定要依赖于一些与此相关的性质。找题解打表可以发现循环节长度的lcm不超过60。 考虑怎么用线段树维护循环。对线段树上每个点维护这段区间的循环节、在循环中的位置,如果未进入环特殊记录;每次修改对于未进入环的暴力修改,已进入环的更新在循环节上的位置即可。对于修改经过的节点 阅读全文
posted @ 2018-11-08 01:48 Gloid 阅读(379) 评论(0) 推荐(0) 编辑