A5119 | 午枫的陪伴时间
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
小枫工作后越来越忙,陪伴小午的时间也越来越少了,为了维持两人的感情小枫打算多抽出点时间来陪伴小午,小枫每次陪小午只能连续陪正好 $t$ 天。
小午现在给了小枫 $n$ 个选项,第 $i$ 个选项的内容为小枫第 $a_i$ 天开始陪他,即小枫需要从第 $a_i$ 开始陪到第 $a_i+t-1$ 天。小枫在陪伴小午的过程中,无法再选择小午给出的其他在这个时间段的上的选项(包括开头和结尾)。
现在小枫需要对小午的每个选项做出选择,如果小枫没选择小午的第 $i$ 个选项,就要给他买一个价值 $v_i$ 的礼物;如果小枫选择完成小午的第 $i$ 个选项,小枫就会花费 $cost_i$ 元陪他度过一段愉快的时光。
现在小枫要通过合理的安排使得最后的花费最少。他想知道最少花费是多少。
小午现在给了小枫 $n$ 个选项,第 $i$ 个选项的内容为小枫第 $a_i$ 天开始陪他,即小枫需要从第 $a_i$ 开始陪到第 $a_i+t-1$ 天。小枫在陪伴小午的过程中,无法再选择小午给出的其他在这个时间段的上的选项(包括开头和结尾)。
现在小枫需要对小午的每个选项做出选择,如果小枫没选择小午的第 $i$ 个选项,就要给他买一个价值 $v_i$ 的礼物;如果小枫选择完成小午的第 $i$ 个选项,小枫就会花费 $cost_i$ 元陪他度过一段愉快的时光。
现在小枫要通过合理的安排使得最后的花费最少。他想知道最少花费是多少。
输入格式
第一行输入两个正整数 $n,t$ $(1\leq t\leq n\leq 10^6)$ ,分别表示小午给的选择数量以及小枫每次需要陪伴的天数。
第二行输入 $n$ 个正整数 $a_i$ $(1\leq a_i \leq n-t+1)$ ,表示第 $i$ 个要求需要小枫从第 $a_i$ 天开始。
接下来 $n$ 行,每行两个整数 $cost_i,v_i$ $(0\leq cost_i,v_i\leq 10^5)$ ,分别表示陪伴小午需要花费的价格、无法满足小午的第 $i$ 个要求需要购买的礼物的价格。
第二行输入 $n$ 个正整数 $a_i$ $(1\leq a_i \leq n-t+1)$ ,表示第 $i$ 个要求需要小枫从第 $a_i$ 天开始。
接下来 $n$ 行,每行两个整数 $cost_i,v_i$ $(0\leq cost_i,v_i\leq 10^5)$ ,分别表示陪伴小午需要花费的价格、无法满足小午的第 $i$ 个要求需要购买的礼物的价格。
输出格式
输出一个整数表示小枫的最少花费。
输入输出样例
输入 #1
6 2 5 5 1 2 3 4 3 9 8 3 2 5 1 8 8 9 4 2
输出 #1
23
只完成第一和第四个要求是最优的;其余四个要求需要花费金钱购买礼物。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?