摘要:
题目链接:子序列个数 思路:使用一个数组(map超时了)记录一个数字在之前出现的位置,然后状态转移方程有两个,如果一个数字在之前出现过:dp[i] = (dp[i - 1] * 2 - dp[index[temp] - 1] + MOD) % MOD;,如果没有出现过:dp[i] = (dp[i - 阅读全文
摘要:
问题描述 某国有n个城市,为了使得城市间的交通更便利,该国国王打算在城市之间修一些高速公路,由于经费限制,国王打算第一阶段先在部分城市之间修一些单向的高速公路。 现在,大臣们帮国王拟了一个修高速公路的计划。看了计划后,国王发现,有些城市之间可以通过高速公路直接(不经过其他城市)或间接(经过一个或多个 阅读全文
摘要:
一、操作过程:tarjan算法的基础是DFS。我们准备两个数组Low和Dfn。Low数组是一个标记数组,记录该点所在的强连通子图所在搜索子树的根节点的 Dfn值(很绕嘴,往下看你就会明白),Dfn数组记录搜索到该点的时间,也就是第几个搜索这个点的。根据以下几条规则,经过搜索遍历该图(无需回溯)和 对 阅读全文
摘要:
题目链接:最长子串 思路:依次找出每个子串的在字符串中的首尾地址,所有子串先按照尾地址从小到大排序。然后首地址从小到大排。 遍历一遍每个子串的首地址和它后面相邻子串的尾地址之差-1, 第一个子串的首地址,字符串长度-最后一个子串的首地址-1的最大值就是ans。 st1 ed1 st2 ed2 例如这 阅读全文
该文被密码保护。 阅读全文