A5395 | 上课不要睡觉
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
你和朋友 $\text{Mishka}$ 正在上微积分课,这节课一共持续 $n$ 分钟。第 $i$ 分钟老师会讲 $a_i$ 条定理。
给定一个长度为 $n$ 的数组 $t$ 来描述 $\text{Mishka}$ 每分钟的状态:
- 若在第 $i$ 分钟他**睡着**,则 $t_i=0$;
- 若**清醒**,则 $t_i=1$。
当他**清醒**时,会把这一分钟老师讲的定理全部记下来(获得 $a_i$ 的“收益”);当他**睡着**时,这一分钟就什么也记不到。
你掌握一种**秘密技巧**,能让 $\text{Mishka}$ **连续保持清醒恰好 $k$ 分钟**,但**只能使用一次**。你可以选择在任意一分钟的开始启动它(只要完整的 $k$ 分钟区间没有超出整节课范围)。在这段被技巧覆盖的区间里,无论原本他是否会睡着,都将视为清醒并获得相应的 $a_i$。
请计算:如果你把这项技巧使用在最合适的时段,$\text{Mishka}$ **最多**能记下多少条定理。
给定一个长度为 $n$ 的数组 $t$ 来描述 $\text{Mishka}$ 每分钟的状态:
- 若在第 $i$ 分钟他**睡着**,则 $t_i=0$;
- 若**清醒**,则 $t_i=1$。
当他**清醒**时,会把这一分钟老师讲的定理全部记下来(获得 $a_i$ 的“收益”);当他**睡着**时,这一分钟就什么也记不到。
你掌握一种**秘密技巧**,能让 $\text{Mishka}$ **连续保持清醒恰好 $k$ 分钟**,但**只能使用一次**。你可以选择在任意一分钟的开始启动它(只要完整的 $k$ 分钟区间没有超出整节课范围)。在这段被技巧覆盖的区间里,无论原本他是否会睡着,都将视为清醒并获得相应的 $a_i$。
请计算:如果你把这项技巧使用在最合适的时段,$\text{Mishka}$ **最多**能记下多少条定理。
输入格式
第一行:两个整数 $n, k$。
第二行:$n$ 个整数 $a_1, a_2, \dots, a_n$。
第三行:$n$ 个整数 $t_1, t_2, \dots, t_n$(仅为 $0$ 或 $1$)。
第二行:$n$ 个整数 $a_1, a_2, \dots, a_n$。
第三行:$n$ 个整数 $t_1, t_2, \dots, t_n$(仅为 $0$ 或 $1$)。
输出格式
一行一个整数,表示在最优使用这项技巧的前提下,Mishka 最多能记下的定理总数。
输入输出样例
输入 #1
6 3 1 3 5 2 5 4 1 1 0 1 0 0
输出 #1
16
$1 \le k \le n \le 10^5$
$1 \le a_i \le 10^4$
$0 \le t_i \le 1$
对于样例:
原本清醒的分钟会直接获得对应的 $a_i$;而你可以选择一个长度为 $k=3$ 的连续区间把他“强制清醒”。若从第 3 分钟开始使用(覆盖第 3–5 分钟),则:
原本清醒得到的和:第 $1、2、4$ 分钟 → $1+3+2=6$;
叫醒区间中原本会睡着的分钟也能获得:第 $3、5$ 分钟 → $5+5=10$;
合计 $6+10=16$,这是最优方案。
$1 \le a_i \le 10^4$
$0 \le t_i \le 1$
对于样例:
原本清醒的分钟会直接获得对应的 $a_i$;而你可以选择一个长度为 $k=3$ 的连续区间把他“强制清醒”。若从第 3 分钟开始使用(覆盖第 3–5 分钟),则:
原本清醒得到的和:第 $1、2、4$ 分钟 → $1+3+2=6$;
叫醒区间中原本会睡着的分钟也能获得:第 $3、5$ 分钟 → $5+5=10$;
合计 $6+10=16$,这是最优方案。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?