2020年7月21日

摘要: 题意:你被给予了n个点m条边。不保证这个图是否联通。一些边已经被定向了,并且你无法改变它们的方向。一些边还没有定向,你需要为这些边选择一些方向。你需要给这些没有定向的边定一个方向,使得这个图是有向无环图。 分析:将所有边存在一个数组里,然后对有向图的边进行拓扑排序,得到所有顶点依次出现的顺序,我们用 阅读全文
posted @ 2020-07-21 21:44 TT3E 阅读(136) 评论(0) 推荐(0) 编辑
 
摘要: 分析:$f[i][j][k]$表示$i到2k$行和$j到2k$列的矩阵中的最大值,可以从四个部分状态转移过来,\(f[i][j][k - 1], f[i + (1 << (k - 1))][j][k - 1]), f[i][j + (1 << (k - 1))][k - 1], f[i + (1 < 阅读全文
posted @ 2020-07-21 19:42 TT3E 阅读(86) 评论(0) 推荐(0) 编辑
 
摘要: 题意:一个矩阵的大小为$N * N$。求这个矩阵中的最大子矩阵和,(N ⇐ 100)。 分析:先考虑一维的状况,即$dp[i] = dp[i - 1] < 0 ? val[i] : dp[i - 1] + val[i]$,我们可以把从第i行到第j行的每列数加起来,然后变成一维数组,存储在f[]数组中 阅读全文
posted @ 2020-07-21 16:12 TT3E 阅读(86) 评论(0) 推荐(0) 编辑
 
摘要: 题意:你被给予了一个非单调递减的n个数字的序列a1, a2, ..., an。除此之外,你被给予了q个询问,每个询问由i, j(1 ⇐ i ⇐ j ⇐ n)。求这个区间内出现最多的数的次数。 分析:这是一个非单调递减的序列,比如样例中的-1 -1 1 1 1 1 3 10 10 10,我们可以得到每 阅读全文
posted @ 2020-07-21 14:53 TT3E 阅读(103) 评论(0) 推荐(0) 编辑
 
摘要: 题意:给定两个字符串S和T。请计算两个字符串最长的公共字符串子串的长度。 分析:考虑问题的简化版,计算一个字符串中至少出现两次的最长子串。答案一定会在后缀数组中相邻两个后缀的公共前缀之中,所以只要考虑它们就好了。我们可以合并两个字符串,利用一个字符隔开,然后通过求高度数组,然后把问题求解出来。 #i 阅读全文
posted @ 2020-07-21 10:12 TT3E 阅读(86) 评论(0) 推荐(0) 编辑