关注
第五题自己写的dp,写的很差,主要是快结束了想起来还有负距离最大这一个情况。。。所以直接复制了代码,仅供参考。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Tencent_5 { class Program { static void Main(string[] args) { string s = Console.ReadLine(); int n=Convert.ToInt32(Console.ReadLine()); int[,,] dp = new int[s.Length, n + 1, 2]; for(int i=1;i<s.Length;i++) for(int j=0;j<n+1;j++) { dp[i, j, 0] = 0; dp[i, j, 1] = 0; } if (s[0] == 'F') { for (int i = 0; i <= n; i++) { if (i % 2 == 1) { dp[0, i, 0] = 0; dp[0, i, 1] = -1; } else { dp[0, i, 0] = 1; dp[0, i, 1] = 1; } } } else { for (int i = 0; i <= n; i++) { if (i % 2 == 1) { dp[0, i, 0] = 1; dp[0, i, 1] = 1; } else { dp[0, i, 0] = 0; dp[0, i, 1] = -1; } } } for (int i = 1; i < s.Length; i++) for (int j = 0; j <= n; j++) for (int k = 0; k <= j; k++) { if(s[i]=='F') { if((j-k)%2==0) { if(dp[i-1,k,0]+ dp[i - 1, k, 1] > dp[i,j,0]) { dp[i, j, 0] = dp[i - 1, k, 0] + dp[i - 1, k, 1]; dp[i, j, 1] = dp[i - 1, k, 1]; } } else { if (dp[i - 1, k, 0] > dp[i, j, 0]) { dp[i, j, 0] = dp[i - 1, k, 0]; dp[i, j, 1] = dp[i - 1, k, 1] * -1; } } } else { if ((j - k) % 2 == 0) { if (dp[i - 1, k, 0] > dp[i, j, 0]) { dp[i, j, 0] = dp[i - 1, k, 0]; dp[i, j, 1] = dp[i - 1, k, 1] * -1; } } else { if (dp[i - 1, k, 0] + dp[i - 1, k, 1] > dp[i, j, 0]) { dp[i, j, 0] = dp[i - 1, k, 0] + dp[i - 1, k, 1]; dp[i, j, 1] = dp[i - 1, k, 1]; } } } } int positiveans = dp[s.Length - 1, n, 0]; for (int i = 1; i < s.Length; i++) for (int j = 0; j < n + 1; j++) { dp[i, j, 0] = 0; dp[i, j, 1] = 0; } for (int i = 1; i < s.Length; i++) for (int j = 0; j <= n; j++) for (int k = 0; k <= j; k++) { if (s[i] == 'F') { if ((j - k) % 2 == 0) { if (dp[i - 1, k, 0] + dp[i - 1, k, 1] < dp[i, j, 0]) { dp[i, j, 0] = dp[i - 1, k, 0] + dp[i - 1, k, 1]; dp[i, j, 1] = dp[i - 1, k, 1]; } } else { if (dp[i - 1, k, 0] < dp[i, j, 0]) { dp[i, j, 0] = dp[i - 1, k, 0]; dp[i, j, 1] = dp[i - 1, k, 1] * -1; } } } else { if ((j - k) % 2 == 0) { if (dp[i - 1, k, 0] < dp[i, j, 0]) { dp[i, j, 0] = dp[i - 1, k, 0]; dp[i, j, 1] = dp[i - 1, k, 1] * -1; } } else { if (dp[i - 1, k, 0] + dp[i - 1, k, 1] < dp[i, j, 0]) { dp[i, j, 0] = dp[i - 1, k, 0] + dp[i - 1, k, 1]; dp[i, j, 1] = dp[i - 1, k, 1]; } } } } int negativeans = dp[s.Length - 1, n, 0]; Console.WriteLine(Math.Max(positiveans,Math.Abs(negativeans))); Console.ReadKey(); } } }
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 面试最后的反问环节,能问些什么?(附特供问题)2.2W
- 2... BG一般,如何逆天改命拿下后端秋招SSP?1.3W
- 3... 从面试官的角度看待一场面试是怎么样的?7826
- 4... 害,找工作哪有不上当的!5292
- 5... 团、节、东孝子全部启动启动启动!(26届后端秋招总结)5145
- 6... 作为普通家庭出身的我,为什么非大厂不可?5030
- 7... 双非硕的十月份秋招总结4438
- 8... 感觉每个人都有自己的苦恼4237
- 9... 项目经历混乱?STAR法则手把手教你梳理(附真实案例分析过程)3729
- 10... 待了一年,一点没亏3430
正在热议
更多
# 实习在多还是在精 #
24014次浏览 189人参与
# 你的房租占工资的比例是多少? #
61228次浏览 742人参与
# 智慧芽求职进展汇总 #
519次浏览 5人参与
# 秋招踩过的“雷”,希望你别再踩 #
57468次浏览 833人参与
# 我的求职进度条 #
37687次浏览 582人参与
# 大厂VS公务员你怎么选 #
13517次浏览 216人参与
# 爱玛科技集团求职进展汇总 #
34573次浏览 231人参与
# 如果不考虑收入,你最想做什么工作? #
31020次浏览 180人参与
# 柠檬微趣工作体验 #
13152次浏览 72人参与
# 机械人的保底公司是哪一家? #
40554次浏览 133人参与
# 顺丰求职进展汇总 #
61905次浏览 306人参与
# 华为池子有多大 #
102083次浏览 732人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
135359次浏览 868人参与
# 如果再来一次,你还会学硬件吗 #
137790次浏览 1441人参与
# 如何用一句话描述你的职业 #
24844次浏览 172人参与
# 高学历就一定能找到好工作吗? #
55438次浏览 607人参与
# 如何排解工作中的焦虑 #
219543次浏览 2104人参与
# 实习下班不想学习,正常吗? #
13666次浏览 150人参与
# 反问环节如何提问 #
112350次浏览 2349人参与
# 你见过哪些工贼行为 #
11409次浏览 76人参与
# 工作中,努力重要还是选择重要? #
204401次浏览 2074人参与
# 校招谈薪一定要知道的事 #
9526次浏览 92人参与