A4786 | 锦标赛
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
欢迎来到锦标赛!这一次,你将作为裁判参加。
作为裁判,主要任务就是安排赛程。本次比赛将由多次一对一组成,共有 $n$ 个选手,其中第 $i$ 个选手的战力值为 $A_i$ 。
对于一场比赛,不妨设双方选手的战力值为 $A_i,A_j$ ,双方实力越悬殊,比赛无聊程度越大,所以我们定义一场比赛的无聊值为 $|A_i-A_j|$ ,且胜者是战力较大的一方。
锦标赛的赛程一共有 $K$ 天,每天可以同时进行多场比赛,每人每天至多参加一场比赛。其中第 $i$ 天的所有比赛的败者不能进入第 $i+1$ 天的比赛,最终在 $K$ 天内决出一个冠军。
你的任务是安排不超过 $K$ 天的赛程,使所有比赛的无聊值和最小。
作为裁判,主要任务就是安排赛程。本次比赛将由多次一对一组成,共有 $n$ 个选手,其中第 $i$ 个选手的战力值为 $A_i$ 。
对于一场比赛,不妨设双方选手的战力值为 $A_i,A_j$ ,双方实力越悬殊,比赛无聊程度越大,所以我们定义一场比赛的无聊值为 $|A_i-A_j|$ ,且胜者是战力较大的一方。
锦标赛的赛程一共有 $K$ 天,每天可以同时进行多场比赛,每人每天至多参加一场比赛。其中第 $i$ 天的所有比赛的败者不能进入第 $i+1$ 天的比赛,最终在 $K$ 天内决出一个冠军。
你的任务是安排不超过 $K$ 天的赛程,使所有比赛的无聊值和最小。
输入格式
第一行两个整数 $n,K$ ,表示参赛选手的数量和锦标赛持续的天数。
第二行 $n$ 个空格隔开的正整数 $A_1,...,A_n$ ,表示 $n$ 个选手的战力值。
第二行 $n$ 个空格隔开的正整数 $A_1,...,A_n$ ,表示 $n$ 个选手的战力值。
输出格式
输出一行一个整数,表示在进行合理的赛程安排之后,无聊值之和的最小值。
输入输出样例
输入 #1
4 3 1 3 4 7
输出 #1
6
Note
在 $3$ 天内结束比赛。
第一天安排战力值为 $1$ 和战力值为 $3$ 的选手交战,无聊值为 $2$ ,战力值为 $3$ 的选手胜出。
第二天安排战力值为 $3$ 和战力值为 $4$ 的选手交战,无聊值为 $1$ ,战力值为 $4$ 的选手胜出。
第三天安排战力值为 $4$ 和战力值为 $7$ 的选手交战,无聊值为 $3$ ,战力值为 $7$ 的选手胜出。
总无聊值和最小值为这种方案,即 $6$ 。
对于 $20\%$ 的数据,$n\leq 8,K\leq 3$ 。
对于 $40\%$ 的数据,$n\leq 100,K\leq 20$ 。
对于 $70\%$ 的数据,$n\leq 200,K\leq 50$ 。
对于另 $20\%$ 的数据,$n\leq 500,K\leq 20$。
对于 $100\%$ 的数据,$n\leq 1000,K\leq 50,n\leq 2^K,A_i\leq 10^5$ 。
在 $3$ 天内结束比赛。
第一天安排战力值为 $1$ 和战力值为 $3$ 的选手交战,无聊值为 $2$ ,战力值为 $3$ 的选手胜出。
第二天安排战力值为 $3$ 和战力值为 $4$ 的选手交战,无聊值为 $1$ ,战力值为 $4$ 的选手胜出。
第三天安排战力值为 $4$ 和战力值为 $7$ 的选手交战,无聊值为 $3$ ,战力值为 $7$ 的选手胜出。
总无聊值和最小值为这种方案,即 $6$ 。
数据规模与约定
对于 $20\%$ 的数据,$n\leq 8,K\leq 3$ 。
对于 $40\%$ 的数据,$n\leq 100,K\leq 20$ 。
对于 $70\%$ 的数据,$n\leq 200,K\leq 50$ 。
对于另 $20\%$ 的数据,$n\leq 500,K\leq 20$。
对于 $100\%$ 的数据,$n\leq 1000,K\leq 50,n\leq 2^K,A_i\leq 10^5$ 。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?