摘要:
题意:给定一棵树,然后每条边有一个字母,然后给定一行字符串,问你能不能从这棵树上找到,并输出两个端点。 析:树形DP,先进行递归到叶子结点,然后再回溯,在回溯的时候要四个值,一个是正着匹配的长度和端点,一个是反着匹配的长度和端点, 然后一个一个匹配,并不断更新这个长度和端点。 代码如下: 阅读全文
摘要:
题意:给定两个数 n 和 k,问你用 k 个不同的质数组成 n,有多少方法。 析:dp[i][j] 表示 n 由 j 个不同的质数组成,然后先打表素数,然后就easy了。 代码如下: 阅读全文
摘要:
题意:给定一个数 n,求它后一个素数和前一个素数差。 析:先打表,再二分查找。 代码如下: 阅读全文
摘要:
题意:有n个正方形和一个角(均在第一象限中),使这些正方形与这个角构成封闭的阴影区域,求阴影区域面积的最大值。 析:很容易知道只有所有的正方形的对角形在一条直线时,是最大的,然后根据数学关系,就容易得到答案。 代码如下: 阅读全文
摘要:
题意:给定一个金字塔,除了最后一行,每个数都等于支撑它的两个数的和,现在给奇数行的左数奇数位置,求整个金字塔。 析:很容易看出来,从下往上奇数行等于 a[i][j] = (a[i-2][j-1] - a[i][j-1] - a[i][j+1]) / 2;然后偶数行就推出来了。 代码如下: 阅读全文
摘要:
题意:给定 n 个结点,表示要修复的点,然后机器人每秒以 v 的速度移动,初始位置在 x,然后修复结点时不花费时间,但是如果有的结点暂时没修复, 那么每秒它的费用都会增加 d,修复要花费 c,坐标是 pos,问你最少花费是多少。 析:dp[i][j][k] 表示已经修复了 i-j 区间,并且当前在 阅读全文