五月天的天 发表于 2020-5-14 14:27:24

考研复试求助!求大佬抬一手

你和小军正在上一堂微积分的课。这堂课会持续m分钟,并且在第i分钟之内教授会讲授个公式。
小军虽然对微积分很感兴趣,但是由于他昨晚没有睡好,所以偶尔会打瞌睡。给出一个长度为m的数组t,如果​为1,表示小军在第i分钟之内是清醒的;如果​为0,表示小军在第i分钟之内是睡着的。当小军是清醒的时候,他会记下这分钟内教授讲授的所有公式;但是他睡着了就是睡着了,什么事情也不会干。
你有一个技巧,可以让小军连续k分钟都保持清醒。但是这个技巧你只能使用一次,你可以在第1到第m-k+1的任意一分钟的开始时刻使用这个技巧。如果你在某一分钟如第i分钟的开始时刻使用了这个技巧,那么小军将会在第j分钟内保持清醒并且记下所有的公式,j满足(i <= j <= i + k - 1)。
你的任务是在合适的时候使用这个技巧,使得小军可以记最多的公式,请你编程帮他计算出最多能记下多少公式。
(程序运行要求,时间:2sec/空间:256MB)
输入
第一行两个整数m和k,含义如题。
第二行m个整数,表示教授每分钟教授的公式的数量。



第三行m个整数,表示小军每分钟的状态,为1是清醒的,为0则睡着了。
满足1 <= k <= m <= 。
输出
一个整数,表示小军记下的最多的公式的数量。
样例
输入
6 3
2 3 5 2 5 3
1 1 0 1 0 0
输出
17
完成要求:
1.分析题意,说明涵盖的知识点和算法。预设所需解题时间。(10分)
2.给出解题思路,绘出算法流程。(15分)
3.给出解题代码,注意代码规范并给以适当注释。(40分)
4.给出功能调试过程,说明出现的情况。(15分)
5.分析总结该类问题的其它解决方案。(10分)
6.在此基础上进行问题拓展,说明拓展问题的解决思路。(10分)

xiaosi4081 发表于 2020-5-14 14:35:51

沙发
页: [1]
查看完整版本: 考研复试求助!求大佬抬一手