对于一个值aj,当ak<aj,aj<ai(k<j,j<i)时,aj对k~i间的数组都是有贡献的。
通俗的说,对于数组[2,9,5,8,3],5仅是2和3之间的数组的最小值,其所需要贡献的连续子数组为[9,5],[5],[5,8],[9,5,8]。
也就是说,对于aj,我们需要找到它左右两边的第一个更小的值(对于5来说是2和3)。这符合单调递增栈的特点。所以我们需要维护一个单调递增栈。
气象站记录了一串连续天的温度读数,所有读数都是正整数。对于任意一段连续的天数,这位气象学家定义该时段的“平稳指数”为:这段天数中最低的温度值乘以该时段包含的天数。现在,他希望计算出所有可能的连续时段的平稳指数之和。
序列的长度 n 满足 1≤n≤105,序列中的每个整数都是正数且不超过 103。
第一行包含一个整数 n,表示天数的数量。 第二行包含 n 个整数,表示每天的温度读数,每个整数 ai 满足 1≤ai≤103,整数之间用空格分隔。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.