9.7 滴滴笔试
20选择2编程,已Ak,考试结束放代码
第一题 藏品最大代价,按n的长度分情况讨论即可
第二题 题意:给定长度为n的字符串s(n为偶数,包含小写字母)和一个代价矩阵grid,每次操作可以删除相邻的两个字符并获得代价。求删除所有字符后的最大代价。
思路:区间dp,区间长度初始为2,从小到大递推,并且区间长度始终为偶数。区间[i,j]的代价转移时,要考虑两种情况:第一种,左区间[i, k]和右区间[k + 1, j]合并(此时左右区间信息都有,可以直接推出来),
第二种情况:区间[i, j]由[i + 1, j - 1] + grid[s[i] - 'a'][s[j] - 'a']推过来(这种情况不能直接由子区间转移,是一种特殊的代价及算法方式)
上面两种情况包含了区间[i, j]所有可能的最大代价,直接算就行了
第一题 藏品最大代价,按n的长度分情况讨论即可
第二题 题意:给定长度为n的字符串s(n为偶数,包含小写字母)和一个代价矩阵grid,每次操作可以删除相邻的两个字符并获得代价。求删除所有字符后的最大代价。
思路:区间dp,区间长度初始为2,从小到大递推,并且区间长度始终为偶数。区间[i,j]的代价转移时,要考虑两种情况:第一种,左区间[i, k]和右区间[k + 1, j]合并(此时左右区间信息都有,可以直接推出来),
第二种情况:区间[i, j]由[i + 1, j - 1] + grid[s[i] - 'a'][s[j] - 'a']推过来(这种情况不能直接由子区间转移,是一种特殊的代价及算法方式)
上面两种情况包含了区间[i, j]所有可能的最大代价,直接算就行了
全部评论
我第二题是零花钱,一直超时只能过27%
第二题我是拼接字符串做的记忆搜索,对某个特定字符串记住他的删除开销,估计是这样做要拼前后两个字符串这一步太慢了
佬 讲下第二题
码住
求解释,dp[i][j]=max(v[s[k]-'a'][s[j]-'a']+dp[i][k-1]+dp[k+1][j-1])为什么不对 ,分成 [i,k-1] [k+1,j-1]2个区间,然后让k和j消掉
第二题dp和dfs都只跑出27,摆了
DP的算法感觉是O(n^3)?用DFS也是O(n^3)但只能过27
求问第二题怎么读取字符串,getline为一直运行错误
第二题记忆化搜索和dp都上了都是27😡急了
蹲
mark
零花钱只过了9%
蹲
mark
mark,快发吧
第二题是dp嘛,没D出来
佬,有零花钱那道题的思路吗

大佬第二天是怎么做的呀
佬是藏品和零花钱两道题吗

都a不了
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
06-02 15:53
阳光学院 Java 点赞 评论 收藏
分享