IncDec 序列
题目描述 给定一个长度为$n$的数列$a_1, a_2, \dots, a_n$。 每次可以选择一个区间$[l, r]$,使这个区间内的数都加 1 或者都减 1。
请问至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列有多少种。
输入格式
- 第一行一个正整数$n$。
- 接下来$n$行,每行一个整数,第$i+1$行的整数表示$a_i$。
输出格式 - 第一行输出最少操作次数。
- 第二行输出最终能得到多少种结果。
输入输出样例 - **输入
4
1
1
2
2 - **输出 ```
1
2
引言中有介绍如何得到最少的操作次数,对于最终得到的结果数:
我们设正数和为p,负数和为q。
在操作min(p,q)后只剩负数或者正数,这里假设只剩正数。
我们还剩|p-q|次操作次数,在这每次操作中,区间一端必定在正数,另一端我们可以自由选择在哪里,如果在数组首部,我们就改变了最终得到的数组。|p-q|次操作我们可以操作在数组首部的次数有0,1,2……|p-q|。总共有|p-q|+1种情况。
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Zedward'Blog!
评论
