#JC1068. 区间动态规划(二)
区间动态规划(二)
一、单项选择题(每题2分,共20分)
1、本讲区间DP“两端扩展”思想,循环的外层优先遍历的变量是?() {{ select(1) }}
- 分割点k
- 区间长度 len
- 区间起点 i
- 区间终点 j
2、最长回文子串中dp[i][j]存储的数据类型与含义是?()
{{ select(2) }}
- 整数,区间最长回文子串长度
- 布尔,判断子串[i,j]是否是回文
- 整数,最少添加字符数量
- 布尔,判断子序列是否回文
3、关于子串与子序列描述正确的是?() {{ select(3) }}
- 子串字符可以不连续;子序列字符必须连续
- 子串字符必须连续;子序列字符可以不连续
- 两者都必须字符连续
- 两者都可以字符不连续
4、最长回文子序列,两端字符s[i]==s[j],状态转移正确的是?()
{{ select(4) }}
dp[i][j] = dp[i+1][j-1] + 2dp[i][j] = dp[i+1][j-1]dp[i][j] = max(dp[i+1][j],dp[i][j-1])dp[i][j] = min(dp[i+1][j]+1,dp[i][j-1]+1)
5、最长回文子序列,两端字符不相等,状态转移为?() {{ select(5) }}
dp[i][j]=dp[i+1][j-1]+2dp[i][j]=dp[i+1][j-1]dp[i][j]=max(dp[i+1][j], dp[i][j-1])dp[i][j]=min(dp[i+1][j]+1,dp[i][j-1]+1)
6、最少添加字符把字符串变为回文,两端字符相等时转移方程?() {{ select(6) }}
dp[i][j]=dp[i+1][j-1]dp[i][j]=dp[i+1][j-1]+2dp[i][j]=max(dp[i+1][j],dp[i][j-1])dp[i][j]=min(dp[i+1][j]+1,dp[i][j-1]+1)
7、最少添加字符变回文,两端字符不等,转移正确的是?() {{ select(7) }}
dp[i][j]=dp[i+1][j‑1]dp[i][j]=dp[i+1][j‑1]+2dp[i][j]=max(dp[i+1][j],dp[i][j‑1])dp[i][j]=min(dp[i+1][j]+1,dp[i][j‑1]+1)
8、GBE合法括号最少添加括号问题,除两端扩展转移外,还需要做什么?() {{ select(8) }}
- 枚举分割点k,合并两个子区间取min
- 直接输出dp[i+1][j‑1]
- 只做max取最大值
- 不需要任何额外操作
9、GBE括号问题,len=1单个括号时,dp[i][i]初始化值为?() {{ select(9) }}
- 0
- 1
- 2
- len
10、最长回文子序列最终答案从哪里获取?() {{ select(10) }}
- 遍历所有dp[i][j]取最大布尔值
dp[0][l‑1]- dp数组所有元素求和
- dp[1][1]
二、判断题(每题2分,共10分)
11、区间DP两端扩展模型,要先算大区间,再算小区间。() {{ select(11) }}
- 正确
- 错误
12、最长回文子串dp[i][j]为true,条件:两端字符相等并且中间子串是回文。() {{ select(12) }}
- 正确
- 错误
13、最长回文子串的dp数组存储的是回文子序列的长度。() {{ select(13) }}
- 正确
- 错误
14、GBE合法括号问题,只写两端扩展转移就可以得到全部正确结果。() {{ select(14) }}
- 正确
- 错误
15、len=1的区间,回文修改(加字符)dp[i][i]=0,单个字符本身是回文。() {{ select(15) }}
- 正确
- 错误