动态规划
StudyingPanda
一名在读cs大学僧,感谢关注!
展开
-
[动态规划] 最大上升子序列和
我们可以遍历前面的a[i],如果a[i]原创 2024-05-16 15:16:10 · 296 阅读 · 0 评论 -
[动态规划] 计算字符串距离
比如对于“abcdefg”和“abcdef”两个字符串来说,我们认为可以通过增加/减少一个“g”的方式来达到目的。无论增加还是减少“g”,我们都仅仅需要一次操作。我们把这个操作所需要的次数定义为两个字符串的距离。给定任意两个字符串,写出一个算法来计算出他们的距离。第一行有一个整数n。表示测试数据的组数,接下来共n行,每行两个字符串,用空格隔开。表示要计算距离的两个字符串字符串长度不超过1000。针对每一组测试数据输出一个整数,值为两个字符串的距离。3ab ab104。原创 2024-05-16 19:52:46 · 246 阅读 · 0 评论 -
[动态规划] 股票买卖
我们可以定义两个数组pre和after,pre[i]表示到第i天我们可以买卖一次股票得到的最大利润,after[i]表示从第i天往后我们可以买卖一次股票得到的最大利润,最后我们再遍历一遍结果取最大值即可。接下来的每组数据,第一行是一个整数 N (1原创 2024-05-16 21:55:00 · 143 阅读 · 0 评论 -
[动态规划] 数字组合
先介绍一种暴力枚举的方法吧,观察可知全部的情况最多只有2^20,也即1024*1024次,这完全是计算机可以接受的程度,于是我们直接枚举全部情况并且判断即可。输入的第一行是两个正整数n和t,用空格隔开,其中1原创 2024-05-16 23:16:36 · 194 阅读 · 0 评论 -
[动态规划] 完美覆盖
我们先计算一个n=2的时候,这是最小的单元(n=1的时候很明显,不可能被完全覆盖,或者从n必须为偶数理解)。比如n=4的时候,如果我们只是计算3*dp[2],那实际上我们在n=2,3这两列可以横着放多米诺牌。所以我们还需要考虑dp[i-4],即我们空出四列出来,然后计算dp[i-4]*2,然后保持这两列横着放,继续i-=2,因为我们刚刚使用了dp[i-4],这是没有考虑i-4和i-5列横着放并且i-3和i-2列横着放的情况。针对每一行的 n 值,输出 3 乘 n 棋盘的不同的完美覆盖的总数。原创 2024-05-13 21:48:58 · 498 阅读 · 0 评论 -
[动态规划] 分解因数
给出一个正整数a,要求分解成若干个正整数的乘积,即a = a1 * a2 * a3 * ... * an,并且1 < a1原创 2024-05-13 20:42:39 · 225 阅读 · 0 评论