python代码,附注释

工作安排

http://www.nowcoder.com/questionTerminal/937d8a6766a5488d958d55ddf3ec5cef

n=int(input())
task=[]
for i in range(n):
    # 将每周的计划作为一个小列表,再加入到task列表中
    task.append(list(map(int,input().split())))
# v中每个位置存放截止到当前周最大的价值量
v=[]
# 初始状态会用到第0周和第1周,第0周的最大价值量是0,第一周的最大价值量是两个任务中较大的价值量
v.append(0)
v.append(max(task[0][0],task[0][-1]))
# 第i周有两种情况,
# 1.做i周的简单任务,这意味着第i周的价值量是第i-1周的价值量+第i周简单任务的价值量;
# 2.做第i周的复杂任务,这意味着第i-1周不能做任务,那么第i周的价值量是第i-2周的价值量+第i周复杂任务的价值量;
# 取上述两种情况的最大值
for i in range(1,n):
    v.append(max(v[i-1]+task[i][-1],v[i]+task[i][0]))
print(v[-1])

略激动,第一次靠自己做出动态规划的题目,我觉得动态规划中最重要的就是确定初始状态和转移方程了。还有就是用python真的很简洁!

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-10 15:24
高考前一晚在OPPO手机上设置了早上5:30的闹钟,然而闹钟并未按时响起。直到妈妈做好早餐后,在6:27打开手机才发现闹钟未触发,“气得早上饭都没吃”。资本家你赢了
永不遗忘:我来解释一下 :Oppo 手机晚上两点会自动进行系统更新,这个系统更新会重置掉所有设置好的闹钟,而且他也不会告诉你,而且只有 Oppo 会这样,华为苹果小米三星都不会
点赞 评论 收藏
分享
05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务