Loading

上一页 1 2 3 4 5 6 ··· 13 下一页
摘要: 二叉苹果树 树形dp 设计状态:$dp[u][i]$,表示以结点 $u$ 为根的子树,保留 $i$ 条边的最大苹果数 状态转移:遍历每一个子节点 $v$ 保留和 $v$ 相连的边:$dp[u][i] = dp[u][i - j - 1] + dp[v][j] + w_{uv}$ $j$ 为遍历 $[ 阅读全文
posted @ 2022-11-01 20:52 dgsvygd 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 最大子树和 树形dp 对于一个节点来说,如果删除掉一个连接子节点的边,则以该子节点为根的子树上面的贡献都会变成 $0$ 设计状态:$dp[u]$,表示以 $u$ 为根的子树中,贡献值最大为多少 状态转移:$dp[u] = max(0, dp[v])$,$v$ 为 $u$ 的子节点,$0$ 的话表示删 阅读全文
posted @ 2022-11-01 20:19 dgsvygd 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 没有上司的舞会 树形dp 给每个结点 $u$ 设计状态:$dp[u][0/1]$,$0$ 表示 $u$ 不参加,$1$ 表示 $u$ 参加 $dp[i][j]$ 表示在以 $i$ 为根的子树中,当前 $i$ 结点 参加/不参加 的状态下,最大的快乐值 状态转移: 当前结点为 $u$,遍历其所有子节点 阅读全文
posted @ 2022-11-01 20:10 dgsvygd 阅读(33) 评论(0) 推荐(0) 编辑
摘要: Distance to the Path 思维 + 树链剖分 首先与树链剖分无关,先考虑如果只更新一个点的情况 因为更新一个点,它既能向根的方向更新,又能向子树方向更新,非常难维护,于是我们只考虑维护一个节点的子树结点的增值 设数组 $sum[i][j]$ 为与 $j$ 结点距离为 $i$ 的 $j 阅读全文
posted @ 2022-10-28 00:23 dgsvygd 阅读(42) 评论(0) 推荐(0) 编辑
摘要: Wish I Knew How to Sort 概率dp 设计一个 $dp[i]$ 表示还需要进行 $i$ 次有效移动的期望次数 何为有效移动?最后的数组是 $0$ 在左边,$1$ 在右边 因此只有把两个在错误位置的交换,才算一次有效移动 因此计算出处于左边(本应该是 $0$ 的位置)的 $1$,然 阅读全文
posted @ 2022-10-24 11:33 dgsvygd 阅读(100) 评论(0) 推荐(0) 编辑
摘要: Factorial Divisibility 模拟 合....合成大西瓜? 枚举每个阶乘因子,提取公因式之后有很多散着的 $1$,然后判断能不能合成当前倍数 #include <iostream> #include <cstdio> #include <algorithm> #include <ve 阅读全文
posted @ 2022-10-24 11:26 dgsvygd 阅读(73) 评论(0) 推荐(0) 编辑
摘要: Counting Arrays 素数 有歧义的数组很难求,但是没有歧义的数组很好求 要使 $a_i$ 到第一个位置之前都不能被删掉,则 $2$ 到 $i$ 的所有数字和 $a_i$ 的 gcd 不等于 $1$ 满足这样的条件,代表包含其 $2$ 到 $i$ 的所有素数因数即可,因此设 $2$ 到 $ 阅读全文
posted @ 2022-10-21 19:03 dgsvygd 阅读(43) 评论(0) 推荐(0) 编辑
摘要: Cactus Wall $01bfs$ 其实按照题目的意思,就必须要有一条 # 的最短路,从最左边的一列到达最右边的一列,然后是只能是斜着走,并且要保证新添加的 # 最少,而且添加的地方,其上下左右都没有 # 带着这些约束跑一个多起点多终点的 $bfs$ 就行,因为权值的增加只有 $0$ 和 $1$ 阅读全文
posted @ 2022-10-21 14:25 dgsvygd 阅读(78) 评论(0) 推荐(0) 编辑
摘要: Good Subarrays (Easy Version) 双指针 显然 $l$ 往右走一步的时候,$r$ 一定是在更远的地方 因此直接双指针求解答案即可 #include <iostream> #include <vector> using namespace std; typedef long 阅读全文
posted @ 2022-10-11 15:06 dgsvygd 阅读(68) 评论(0) 推荐(0) 编辑
摘要: Equal Binary Subsequences 构造 赛中一直卡在 $C2$,没看到这题 显然数字出现的次数为奇数的无解 考虑偶数的情况,可以将数字相邻两个组合在一起,$[2 * i + 1, 2 * i + 2]$ 如果两个都是 $0$ 或者 $1$,两个分到两边去就行了 如果两个是 $01$ 阅读全文
posted @ 2022-10-11 15:03 dgsvygd 阅读(54) 评论(0) 推荐(0) 编辑
摘要: GCD & LCM Inverse 大整数质因数分解 主要是一个 $Pollard_Rho$ 板子想放上来 对 $GCD$ 和 $LCM$ 质因数分解之后,对于每个质因数,有相应的两个幂 $a^{p_1}$ 和 $a^{p_2}$,且 $a^{p_1} <> a^{p_2}$,对于每个这样的质因数, 阅读全文
posted @ 2022-10-11 14:54 dgsvygd 阅读(19) 评论(0) 推荐(0) 编辑
摘要: Add and Mex 模拟 照着模拟就行了,主要是复杂度分析 第 $i$ 个数字的增长速度为 $i$,显然对最终答案造成影响的范围值域就在 $[0, n]$ 在最不理想的情况下,计算量为 $\sum_{i=1}^{n}\lceil \frac{n + 1}{i} \rceil$ 不难看出就是一个调 阅读全文
posted @ 2022-10-09 11:01 dgsvygd 阅读(83) 评论(0) 推荐(0) 编辑
摘要: Root M Leaper $bfs$ 模拟 先把能走的矩阵预处理出来,然后直接跑 $bfs$ 要注意各种边界 #include <iostream> #include <cstdio> #include <array> #include <queue> using namespace std; # 阅读全文
posted @ 2022-10-09 10:35 dgsvygd 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 鸽子的浮点运算 模拟 就跟着题意模拟就好了 先读入,然后转成二进制,截断成 $16$ 位,然后转成十进制 $double$,最后计算,计算结果转成二进制截断成 $16$ 位,然后输出 #include <iostream> #include <cstdio> #include <vector> #i 阅读全文
posted @ 2022-10-06 23:39 dgsvygd 阅读(21) 评论(0) 推荐(0) 编辑
摘要: Largest Submatrix of All 1’s 单调栈 感觉很经典的题目,不知道为啥就没做出来 从第 $i$ 行来说,$a_{ij}$ 可以抽象成一个高度为 $x$ 的山峰,$x$ 取决于在第 $j$ 列,从第 $i$ 行开始往上数,有多少个连续的 $1$ 4 4 0 1 0 1 0 1 阅读全文
posted @ 2022-10-06 23:24 dgsvygd 阅读(22) 评论(0) 推荐(0) 编辑
摘要: Sightseeing tour 网络流 - 最大流 考虑欧拉图,无向边:度数全为偶数,有向边:出度和入度相等 对于有向边来说,已经不可更改;对于无向边来说,可以更改其指向 因此这题最终就是想找一种合理的方案(调整无向边的方向),使得所有点的出度等于入度 首先要判断是否是一个连通图,还要判断,所有点 阅读全文
posted @ 2022-10-06 23:15 dgsvygd 阅读(25) 评论(0) 推荐(0) 编辑
摘要: Mountain Walking 二分 + $bfs$ 最终要求的最低差 二分答案,枚举最低海拔,这样就有一个能够接受的海拔范围 $[l, r]$ 根据这个范围,看看 $bfs$ 能不能搜索到 $(n, n)$ #include <iostream> #include <cstdio> #inclu 阅读全文
posted @ 2022-10-05 21:20 dgsvygd 阅读(22) 评论(0) 推荐(0) 编辑
摘要: Euclid's Game 博弈 很经典的博弈了 首先明确每个状态必然都对应着一个局面,先手必败 $or$ 先手必胜 如果当前局面对于先手来说是能够选择的,也就是 $b >= a * 2$,对于一个最终局面 $b' < a$,如果先手必败,此时先手可以把这个局面丢给对方,否则可以让局面变成 $b' 阅读全文
posted @ 2022-10-05 21:17 dgsvygd 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 突然意识到正式赛这个版块没有更新过什么,就打算写一个赛后总结 开场跟榜开 $C$,跟队友讨论了好一会儿,$20$ 分钟才意识到和叶子结点有关,qgn 上机,没看代码,觉得没啥问题,结果有特判 $1$ 没想到,小 $wa$ 一发 接着开了 $H$, 其实我一早就看到这个题了,就是最近不太喜欢读题,看到 阅读全文
posted @ 2022-09-23 14:30 dgsvygd 阅读(81) 评论(0) 推荐(0) 编辑
摘要: Getting Confidence 费用流 经典费用流模型,先建立 $n * n$ 个点,来模拟一行,一行中的连接边流量为 $1$,费用为 $0$,源点连接每一行的第一个点 对上述生成的点中,同一列连接到一个新的点,流量为 $1$,费用为 $-a[i][j]$,然后该点连接一个流量为 $1$,费用 阅读全文
posted @ 2022-09-23 14:13 dgsvygd 阅读(91) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 13 下一页