摘要: 记录dp的设计。一开始设计的是f[i][j]表示最后一个选i,匹配到j的最大值,然而这样转移是\(n^2\)的,题目要求\(n*m\). 设计成0,1背包,考虑第i个选择或者不选择即可。 #include<bits/stdc++.h> using namespace std; const int N 阅读全文
posted @ 2024-09-22 22:31 LawrenceD 阅读(36) 评论(0) 推荐(0)
摘要: 给n个数,随意排序,所有前缀的gcd的和的最小值。 只想到gcd变化是log次的,所以枚举每个作为开头,然后找让gcd变小的接上。可是这样是\(O(n^2)\). 注意,最小的数要放最前面。 假设\(x,a_1,a_2....\) 和 \(a_1,a_2,x...\). (x是最小的)我们有\(x+ 阅读全文
posted @ 2024-09-22 22:10 LawrenceD 阅读(54) 评论(0) 推荐(0)
摘要: 中文题面:https://www.luogu.com.cn/problem/CF1946E 先考虑只要求前缀最大值怎么做。从前往后很容易想到\(O(n^3)\)的dp,用前缀和优化可以到\(O(n^2)\).注意相对顺序,\([p_i,p_{i+1}-1]\)选择的数,必须让最大的放在最前面才合法。 阅读全文
posted @ 2024-08-18 19:22 LawrenceD 阅读(15) 评论(0) 推荐(0)
摘要: luogu中文题面:https://www.luogu.com.cn/problem/CF1988D 树形dp。我们只关心子树的根节点v什么时候被删去。dp[u][i]+= min(dp[v][1...i-1,i+1...T]). T是log(n)的。 因为\(T\leq Mex(u)\), 而考虑 阅读全文
posted @ 2024-08-15 15:45 LawrenceD 阅读(12) 评论(0) 推荐(0)
摘要: 洛谷中文描述:https://www.luogu.com.cn/problem/CF505E 大致思路:二分。要求每个竹子最后\(\leq mid\),那么考虑最后每个都\(=mid\),往前每一步选k个竹子加p,再减去\(a_i\), 能不能达到起始\(\geq h_i\)并且每一步每个竹子\(\ 阅读全文
posted @ 2024-08-15 13:42 LawrenceD 阅读(13) 评论(0) 推荐(0)
摘要: 给定一棵 n个节点的树,每个节点有一个小写字母。 有 m 组询问,每组询问为树上 a→b 和 c→d 组成的字符串的最长公共前缀。 \(n≤3×10^5,m≤10^6\)。 两个字符串求任意子串的最长公共前缀,可以二分+哈希。 树上的路径通过树剖分出\(log(n)\)个区间得到\(log(n)\) 阅读全文
posted @ 2024-08-15 12:15 LawrenceD 阅读(18) 评论(0) 推荐(0)
摘要: 题目大意:求长度为1,2,...N,的好序列因数个数。好序列满足每个元素\(1\leq x \leq M\) \(N \leq 1e18, M \leq 16\) 很容易想到维护所有好序列质因数的指数+1的乘积。 \(\prod b_i, 1 \leq i \leq 6\). 考虑每个数对这个乘积的 阅读全文
posted @ 2024-08-12 18:12 LawrenceD 阅读(43) 评论(0) 推荐(0)
摘要: GSS6 - Can you answer these queries VI #tree Given a sequence A of N (N ⇐ 100000) integers, you have to apply Q (Q ⇐ 100000) operations: Insert, delet 阅读全文
posted @ 2021-10-09 20:36 LawrenceD 阅读(31) 评论(0) 推荐(0)
摘要: NOIP 2015 运输计划 题目描述 给定一棵树,树有边权。现有\(m\)条路径,求把一条边权变为0后,最大的路径长度的最小值。 解题思路 首先考虑\(O(nm)\)的暴力,枚举每条边,然后暴力check一下最长的路径。 思考怎么优化这个暴力。一个很明显的地方是,如果我们不把最长路径上的某条边变为 阅读全文
posted @ 2020-08-06 10:51 LawrenceD 阅读(93) 评论(0) 推荐(0)
摘要: BZOJ 4012. [HNOI2015]开店 题目描述 询问一个点到树上其它点的距离,这些点满足颜色属于区间$[l,r]$. 多组询问 解题思路 首先考虑离线的做法,把所有颜色离散化,然后扫描颜色序列,每扫到一个点就把它到根的贡献算上,就是每个点都加上父边长度的贡献,这样求答案的时候直接跳到根节点 阅读全文
posted @ 2020-08-05 16:00 LawrenceD 阅读(75) 评论(0) 推荐(0)