摘要: LINK: "Removing Robots" 没想到 自闭。 考虑了一个容斥 发现不合法方案难以计算。 就算可以计算也几乎是n^2的做法。 考虑dp 左边会对右边产生影响 所以考虑先dp右边的再考虑左边的。 至于dp 自然是f[i]表示这个i~n这么多点的方案数。 设 i向右第一个影响不到的点为w 阅读全文
posted @ 2020-04-12 19:55 chdy 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 容易想到二分。 看到第一个条件容易想到缩点。 第二个条件自然是分段 然后让总和最小 容易想到dp. 缩点为先:我是采用了取了一个前缀最小值数组 二分+并查集缩点 当然也是可以直接采用 其他的奇奇怪怪的做法。 二分为重 发现变成了dp使得总a值尽可能小的问题。 方程为 f[i]=min(f[j]+ma 阅读全文
posted @ 2020-04-12 16:27 chdy 阅读(396) 评论(0) 推荐(0) 编辑
摘要: LINK: "Divisor Paths" 考试的时候已经想到结论了 可是质因数分解想法错了 导致自闭。 一张图 一共有D个节点 每个节点x会向y连边 当且仅当y|x,x/y是一个质数。 设f(d)表示d的约数个数 那么x y的无向边的边权为f(x) f(y); 每次询问两个点x,y之间的最短路径的 阅读全文
posted @ 2020-04-12 15:08 chdy 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 写了一种比较容易理解 但是常数很大的sol. 容易发现可以扫描线。 维护好序列之后发现很难查距离 考虑二分。 这里二分可以在线段树上进行 当然可能存在一些问题 如果离散化的话需要处理一些比较麻烦的细节 如:需要向左二分一次向右二分一次什么的。 当然也可以直接在外面二分 得到一个区间 发现只要区间的本 阅读全文
posted @ 2020-04-12 14:10 chdy 阅读(151) 评论(0) 推荐(0) 编辑