
动态规划
吴俊达9812
这个作者很懒,什么都没留下…
展开
-
焦作网络赛K. Transport Ship
dp边界条件又错了,最开始没加dp[0][0] = 1。以后可以把dp想成一个二维数组,从第一行推到第n行。那么推导第一行的时候就需要第0行。这么想就不容易错了。 坑点:dp边界条件 #include<bits/stdc++.h> using namespace std; typedef long long LL; typedef long long lint; const l...原创 2019-06-24 14:12:56 · 125 阅读 · 0 评论 -
2018 徐州A Hard to prepare
定义: dp[ i ][ 0 ] 长度为 i ,首尾匹配的合法方案个数 dp[ i ][ 1 ] 长度为 i,首尾不匹配的合法方案个数 dp[ i ][ 2 ] 长度为 i,首尾相等的合法方案个数 = dp[ i-1 ][ 1 ] 转移方程见代码 坑点:m*m爆 int。取模意义下的减法需要加模数(尼玛错了n遍了。。。) #include <bits/stdc++.h>...原创 2019-06-27 23:06:20 · 248 阅读 · 0 评论 -
牛客多校第三场 Median
证明:每个点只能是他所能影响到的三个中位数之一(反证法) 然后我们定义状态,可以定义 前两个个数的状态,也可以定义 当前一个数的状态。不过状态定义的复杂的话会方便转移。 但有一个问题是状态多的话我们必须通过枚举状态,然后判断是否合法来进行转移。(类比于数位dp) 边界条件的处理我们需要扩展出前面的状态,这样边界会比较好写。 #include <bits/stdc++.h>...原创 2019-09-04 23:43:11 · 119 阅读 · 0 评论 -
icpc ecfinal 西安 I
题意:你有n次操作,每次操作有3种选择,1.造成A+ai点伤害;2.永久给D增加bi;3.永久给A增加ci。(每次操作前执行:A+=D)。问最后最多造成多少伤害。 思路:动态规划很重要的一条性质是某一个状态都可以由同侧的状态推出。 我们首先考虑时间从小到大的递推方法,我们有两个需要优化的值,一个是最大化当前的攻击输出,另一个是最大化A+B 的和。 两个优化目标我们一般考虑将其中一个维度当做...原创 2019-10-04 17:47:13 · 395 阅读 · 0 评论