Warning: session_start(): open(/tmp/sess_3663af9033cd2df48e847f1e2bf38d66, O_RDWR) failed: No space left on device (28) in /data/wiki/inc/init.php on line 239

Warning: session_start(): Failed to read session data: files (path: ) in /data/wiki/inc/init.php on line 239

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/auth.php on line 430
Writing /data/wiki/data/cache/d/d8bb799d01e07e83e070675a3db69567.captchaip failed

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/actions.php on line 38

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/lib/tpl/dokuwiki/main.php on line 12
2020-2021:teams:i_dont_know_png:saratovsu2015 [CVBB ACM Team]

用户工具

站点工具


2020-2021:teams:i_dont_know_png:saratovsu2015

这是本文档旧的修订版!


2015-2016 Petrozavodsk Winter Training Camp, Saratov SU Contest

A - Three Servers

Solved by qxforever.

题目描述

给 $n$ 个数,分为三组,使三组和的 max-min 最小。$n\le 400$ ,$a_i \le 30$

解题思路

考虑 dp,设 $f_{i,j,k}$ 表示前 $i$ 个数,第二组减第一组为 $j$ ,第三组减第一组为 $k$ 是否可行。设两组差的范围为 $m$ ,那么时间和空间复杂度均为 $O(n\times m^2)$ 。猜想在 random_shuffle 下,$m$ 的范围不必很大也能找到最优解。

在实现中,考虑空间限制,取 $m=750$ ,单次计算耗时 ~ 300ms 。考虑时间限制,随机 $8$ 次取最优通过了本题。

2020-2021/teams/i_dont_know_png/saratovsu2015.1595929523.txt.gz · 最后更改: 2020/07/28 17:45 由 qxforever