学习小组

et988196 程序题 共 个子题

问题描述

班主任计划将班级里的 $n$ 名同学划分为若干个学习小组,每名同学都需要分入某一个学习小组中。班级里的同学依次以 $1, 2, \dots, n$ 编号,第 $i$ 名同学有其发言积极度 $c_i$。

观察发现,如果一个学习小组中恰好包含编号为 $p_1, p_2, \dots, p_k$ 的 $k$ 名同学,则该学习小组的基础讨论积极度为 $a_k$,综合讨论积极度为 $a_k + \max\{c_{p_1}, c_{p_2}, \dots, c_{p_k}\} - \min\{c_{p_1}, c_{p_2}, \dots, c_{p_k}\}$,也即基础讨论积极度加上小组内同学的最大发言积极度与最小发言积极度之差。

给定基础讨论积极度 $a_1, a_2, \dots, a_n$,请你计算将这 $n$ 名同学划分为学习小组的所有可能方案中,综合讨论积极度之和的最大值。

输入描述

第一行,一个正整数 $n$,表示班级人数。

第二行,$n$ 个非负整数 $c_1, c_2, \dots, c_n$,表示每位同学的发言积极度。

第三行,$n$ 个非负整数 $a_1, a_2, \dots, a_n$,表示不同人数学习小组的基础讨论积极度。

输出描述

输出一行,一个整数,表示所有划分方案中,学习小组综合讨论积极度之和的最大值。

样例输入 1

4
2 1 3 2
1 5 6 3

样例输出 1

12

样例解释 1

最优划分是把 4 名同学分成 {1,2} 与 {3,4} 两个 2 人小组:第一组基础讨论积极度 $a_2 = 5$,组内最大发言积极度 2、最小 1,差为 1,得 6;第二组 $a_2 = 5$,最大 3、最小 2,差为 1,也得 6,合计 12。

样例输入 2

8
1 3 2 4 3 5 4 6
0 2 5 6 4 3 3 4

样例输出 2

21

样例解释 2

最优划分为 {1,7,8}、{2,3,4}、{5,6} 三个小组:{1,7,8} 的发言积极度为 1、4、6,基础 $a_3 = 5$ 加差 5 得 10;{2,3,4} 的发言积极度为 3、2、4,$a_3 = 5$ 加差 2 得 7;{5,6} 的发言积极度为 3、5,$a_2 = 2$ 加差 2 得 4。合计 10 + 7 + 4 = 21。

数据范围

对于 40 的测试点,保证 $c_i = 0$。

对于所有测试点,保证 $1 \le n \le 300$,$0 \le c_i \le 10^{4}$,$0 \le a_i \le 10^{4}$。

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧