关于题面
查看原帖
关于题面
369251
胖头鱼学员楼主2021/2/23 15:00

【题目描述】

给定一个长度是 nn 的数列 AA ,我们称一个数列是完美的,当且仅当对于其任意连续子序列的和都是正的。

现在你有一个操作可以改变数列,选择一个区间 [l,r][l,r] 满足 i=lrAi<0\sum\limits_{i = l}^r A_i < 0 ,其中 1<lr<n1 < l \le r < n

S=i=lrAiS = \sum\limits_{i = l}^r A_i ,对于 Al1A_{l - 1}Ar+1A_{r + 1} 分别加上 SSAlA_lArA_r 分别减去 SS (如果 l=rl = r 就减两次)。问最少几次这样的操作使得最终数列是完美的。

【输入格式】

11 行一个数 nn ,以下 nn 个数。

22 行至第 n+1n + 1 行,第 ii 行一个数 AiA_i

【输出格式】

一个数表示最少的操作次数,如果无解输出 1-1

【数据规模】

对于20%的数据,满足 1N51 \le N \le 5 ;

对于100%的数据,满足 1N1051 \le N \le 10^5 ; 1Ai<2311 \le |A_i| < 2^{31}

源码:

## 【题目描述】
给定一个长度是 $n$ 的数列 $A$ ,我们称一个数列是完美的,当且仅当对于其任意连续子序列的和都是正的。

现在你有一个操作可以改变数列,选择一个区间 $[l,r]$ 满足 $\sum\limits_{i = l}^r A_i < 0$ ,其中 $1 < l \le r < n$ 。

令 $S = \sum\limits_{i = l}^r A_i$ ,对于 $A_{l - 1}$ 和 $A_{r + 1}$ 分别加上 $S$ , $A_l$ 和 $A_r$ 分别减去 $S$ (如果  $l = r$ 就减两次)。问最少几次这样的操作使得最终数列是完美的。

## 【输入格式】

第 $1$ 行一个数 $n$ ,以下 $n$ 个数。

第 $2$ 行至第 $n + 1$ 行,第 $i$ 行一个数   $A_i$ 。

## 【输出格式】

一个数表示最少的操作次数,如果无解输出 $-1$。

## 【数据规模】

对于20%的数据,满足 $1 \le N \le 5$ ;

对于100%的数据,满足 $1 \le N \le 10^5$ ; $1 \le |A_i| < 2^{31}$
2021/2/23 15:00
加载中...