随笔分类 - 具体问题
摘要:算法 考虑 \(\rm{dp}\) 其实谁都知道是 \(\rm{dp}\) , 但是推不出来啊 这个问题的关键点在于注意到每次往回走, 必定需要走到之前只访问过一次的位置, 这样算法才有正确性 容易的, 令 \(f_i\) 表示游览结束前 \(i\) 个点的最小时间花费, 由上面的结论可知, 对于
阅读全文
摘要:算法 显然的, 我们可以先转化问题 对于无向图上的 \(n\) 个点, 点之间的边权就是 \(\min(\text{图上的欧氏距离的平方和}, v)\) , 求走完所有点时经过的最小边权和 手玩样例看下有没有思路? 显然的, 对于 \(50 \rm{pts}\) , 状压可以解决 考虑剩下的 \(5
阅读全文
摘要:前言 米奇妙妙 \(\rm{dp}\) , 也是高端计数 这种题看得懂想不出, 还是非常难蚌 能不能多想想再去看 \(\rm{TJ}\) 啊 算法 思路 \(1\) 注意到除了割边, 其他的边都没有影响, 显然可以缩 \(\rm{e}\)-\(\rm{DCC}\) 再进行处理 这里发现缩完之后形成一
阅读全文
摘要:算法 考虑 \(\rm{dp}\) 令 \(f_{i, j}\) 表示前 \(i\) 个数中, 分成 \(m\) 组的最小花费 关于转移, 我们有 \[f_{i, j} = \min(f_{k, j - 1} + j \times \rm{Sum}(k + 1, i) + \max(k + 1, i
阅读全文
摘要:算法 很显然是一种区间 \(\rm{dp}\) , 然而赛时我因为觉得 \(\mathcal{O}(n ^ 3)\) 过不掉跑去打假算法了? 代码 略 总结 赛时思路方向是对的, 但是直接正向去做会导致正确性趋势 喵了个咪的, 这个题一开始思路就是错的, 还能给我分是真的绷不住
阅读全文
摘要:前言 老登你也知道你又在出 \(\rm{LIS}\) 算法 首先我们需要注意到, 本质上和随机了一个 \(1 \sim n\) 的排列没有任何区别 具体的, 任意一个 \(\rm{LIS}\) 数列, 都仅仅是由大小关系推过来的, 并且可以证明, \(\rm{LIS}\) 数列相同, 当且仅当大小关
阅读全文
摘要:算法 考场上想到了一些, 但不多 容易想到把相关的字符串全部加到字典树中 然后操作只有两种嘛 键盘输入 按 tab 显然的, 我们可以构造一颗 \(\rm{trie}\) 树, 对于键盘输入, 我们把 \(\rm{trie}\) 树上的点向其子节点连一条权值为 \(1\) 的点 对于按 tab 的情
阅读全文
摘要:算法 嗯, 和赛时做法也是没有一点相似之处, 寄! 挂个 \(\rm{TJ}\) 题解下载 对于暴力, 显然可以用 \(\rm{dfs}\) 实现, 这种 \(\rm{dfs}\) 我还没有见过 大概有个想法, 每次有两种选择, 要么新开集合, 要么从前面加一个进去, 大概就这样, 也比较简单, 剪
阅读全文
摘要:算法 暴力 容易想到的做法是, 对于每次加边, 跑一次 \(\rm{Tarjan}\) 求割点, 但是每次 \(\rm{Tarjan}\) 的复杂度是 \(\mathcal{O} (n + m)\) , 总的时间复杂度可以卡到 \(\mathcal{O} (Qn + Qm)\) , 显然不能用 正解
阅读全文
摘要:算法 手玩样例可以快速得知, 如果第 \(i\) 个点不是割点, 只会导致其他点 (以下设为点集 \(O\) ) 不能到达 \(i\) 点, 不会影响 \(O\) 之间的连通性 那么显然的, 我们进行分类讨论 \(i\) 点不是割点 显然的, 只会造成 \(2(n - 1)\) 的贡献 \(i\)
阅读全文
摘要:算法 初看题面没有思路, 考虑使用数学语言表示 注意本题最重要的信息是发现路径为一个环 给你一张 \(n\) 点 \(m\) 边的有向图,第 \(i\) 个点点权为 \(F_i\) , 第 \(i\) 条边边权为 \(T_i\) 找一个环, 设环上的点组成的集合为 \(S\) , 环的边组成的集合为
阅读全文
摘要:算法 题意简述 给定长为 \(n\) 的排列 \(A\) 每次改变顺序, 位置 \(i\) 的奶牛移动到 \(A_i\) 重复以上步骤, 直到每只奶牛回到原来的位置 容易发现, 对于正确的排列 \(A\) , 每只奶牛总会回到原来的位置 观察到和之前的某一道题很相似? 考虑回到原来位置的本质, 显然
阅读全文

浙公网安备 33010602011771号