Warning: session_start(): open(/tmp/sess_c3ffc2d45da0ea24faf2831f8eb1514f, 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

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:hotpot:200523-200529 [CVBB ACM Team]

用户工具

站点工具


2020-2021:teams:hotpot:200523-200529

2020/05/23——2020/05/29周报

团队训练

2020.5.23 Nordic Collegiate Programming Contest 2015 prob:7/7/10 rank:1/29

林星涵

专题

陶吟翔

专题

本周无

郭衍培

专题

本周无

本周推荐

林星涵:

陶吟翔:

郭衍培:题目链接

给定长度为n的数列,保证后$\lfloor \frac n2 \rfloor$个数是相同的。求一个k,使得任意连续k个数的和都大于0,若不存在输出-1

显然,如果数列的总和大于0,则只需要取k=n即可。如果数列总和小于等于0,而后$\lfloor \frac n2 \rfloor$个数大于等于0,则一定不存在满足要求的k(否则取若干个连续k项加末尾若干个数,得到数列总和大于0)。 因此,只需解决数列总和小于0,且最后$\lfloor \frac n2 \rfloor$个数小于0的情况。此时,显然有$k>\lfloor \frac n2 \rfloor$ 记录前$\lceil \frac n2 \rceil$个数的后缀和,并计算以i为起始,和为正的最大长度$l_i$。记录$k_m=\min_{i=1}^m{l_i}$,直到第i项,有$i+k_i>n$,则$k_i$满足要求,否则不存在满足要求的解。

2020-2021/teams/hotpot/200523-200529.1590733799.txt.gz · 最后更改: 2020/05/29 14:29 由 喝西北风