当前位置 : 主页 > 编程语言 > 其它开发 >

2022字节跳动笔试ak口糊(4月17日)

来源:互联网 收集:自由互联 发布时间:2022-05-30
60分钟ak,A题调了40分钟,牛客在线IDE不能断点调试,心态爆炸 A:模拟,开个mapstring, intmp[11]存一下直接找就行了 B:DP,记 \(pre_i\) 为从i往左拓展的最长的连续严格下降区间, \(suf_i\

60分钟ak,A题调了40分钟,牛客在线IDE不能断点调试,心态爆炸

A:模拟,开个map<string, int>mp[11]存一下直接找就行了

B:DP,记\(pre_i\)为从i往左拓展的最长的连续严格下降区间,\(suf_i\)为从\(i\)往右拓展的最长严格上升区间,对于每个位置\(i\):当\(pre_i>1 \&\& suf_i>1\)时,\(ans = max(ans, pre_i + suf_i - 1)\)

C:数学,易知\((x+y)\%b = x\%b + y\%b\),设子区间的左右端点为[l,r],则区间和为\((pre_r-pre_{l-1}) \%b = pre_r \% b - pre_{l-1} \%b\),因此求前缀和\(pre_i = (pre_{i-1} + a_i) \% b\),找[1,i-1]中有多少个前缀和模b与\(pre_i\)相同即可,\(pre_i\)\(0\)也要计入答案

D:DP,倒着跑即可,记\(dp_i\)为当前取\(i\)物品能获得的最大价值,\(suf_i = max(dp_i,dp_{i+1},...,dp_n)\)
转移为\(dp_i = weight_i+ suf_{i+skip_i+1}\),最后输出\(suf_1\)即可

上一篇:反转链表
下一篇:没有了
网友评论