摘要:
T1 暴力50分: 跑k次没有写错的dij 看起来似乎是个树 也有可能是森林 也许我们可以把它当树做 据Yousiki说是个入门的树形dp,but我不会 正解: 我们枚举两个距离最近的点的编号 既然两个的int表示不同,就说明它们的二进制表示上至少有一位不同。 假设枚举到第i位,就把这一位为0的点设 阅读全文
摘要:
说人话: 边双联通: a到b的路径上无必经边 点双联通: a到b的路径上除了a,b没有必经点 tarjan求点双联通: 代码(补图) 割点: 桥: 求点双:强制dfs时不越过割点,即可求出一个块 求边双:dfs时不越过桥 不是割点:减少2n-1 是割点:减少sigmai的大小*其他所有子树的大小 t 阅读全文
摘要:
数据范围:O(n3) 弗洛伊德跑出两两之间的最短路 然后加一加判一判 跑单源最长路 复杂度:O(n2logn) 因为边数是n2的 先跑一遍1为源点的最短路 再建一张把所有有向边都反过来的最短路(1还是源点)来跑 一: 在跑dij的时候在维护的数里面再塞一个当前的费用,当费用>k的时候就不更新(下一个 阅读全文
摘要:
神马是状态压缩? 就是当普通dp的每一维表示的状态非常少的时候,可以压缩成一维来表示 如果m==8 dp[i][0/1][0/1]......[0/1] 压缩一下 dp[i][s]表示到了第i行,状态是s的方案数 那么状态数是指数级的 有点大....... 考虑每一行的合法状态真的有那么多吗? 考虑 阅读全文
摘要:
T3: ... ...不会 选k个集合,每个集合的价值就是线段交集的长度,求最大总价值 不存在两个集合的价值都为空 因为我们可以把一个空集里面的线段只留下1条,其他的放在另一个空集里面 只有一个空集:把前k-1长的线段拿出来(取) 没有空集: 一个性质: 如果有一条线段包含另一条线段,则他们放在同一 阅读全文
摘要:
什么是图鸭? 什么是有向图鸭? 什么是权鸭? 就是点和边的价值辣 什么还有负权??! 什么是环啊? 就是从一个点出发能走回自己辣 注意重边!!! 有向无环图:缩写:DAG 顾名思义,就是一个没有环的有向图 简单路径:没有经过重复点的路径 什么是树鸭? 包含n个点,n-1条边的连通图 树没有环。一般来 阅读全文
摘要:
概率与期望dp 期望: 为什么下面的式子成立? 若x可以取1,2,3,则x+c可以取1+c,2+c,3+c..........x*c可以取1*c,2*c,3*c why? 举个例子(E(x+y)=E(x)+E(y)) 如果我们有两个个四面的色子,要计算E(x+y) 第一个色子的取值 1 2 3 4 阅读全文
摘要:
背包 0/1背包 设dp[i][j]为前i个物品选了j体积的物品的最大价值/方案数 dp[i][j]=max(dp[i-1][j-w[i]]+v[i],dp[i-1][j])(最大价值) dp[i][j]=dp[i-1][j-w[i]]+dp[i-1][j](方案数) 输出方案: dp[i][j]= 阅读全文
摘要:
一些废话: 纪念hin久以前gellygoat大佬给我们讲了以后窝就再也没动过的单调队列 qbxt的电脑编译一次9s+可海星 f10真好用 题目传送 数据看起来能用线段树卡过? 这道题作为单调队列的板子题当然是用单调队列了 这里呢,我们设两个单调队列(dalao是用一个,但我不是dalao,只会用两 阅读全文
摘要:
一些前言: 据说动态规划会用排序,数据结构来进行乱搞优化操作 动态规划滴核心是个啥呢?状态表示和状态转移 设状态:哪些因素会影响到最终答案,就把哪些因素用数组的维度表示出来 要充分描述,也要简洁 举个例子 计算从(1,1)走到(x,y)的方案数: 走到任意一个(p,q),只能从(p-1,q)和(p, 阅读全文