Codeforces_Round_#622(Div. 2)_C.Skyscraper_非官方解法
题意: 给了一堆楼 要求 不能存在 i < j> aja_jaj < aka_kak 的情况 不一定非要挨着 楼高有限制 不得超过mim_imi 官方题解是 单调栈 正着一遍 反着一遍就可以了 正着:dp[i]前i个保持递增序列的最大前缀和 反着就递减的最大后缀和 然后on扫最大 我的ST表 + (贪心)分治 找到最小值 要么左边全是最小值 要不就是右边 选择 一个 (r−mins.second)∗mins.first+s1+mins.first(r – mins.second) * mins.first + s1 + mins.first(r
下载地址
用户评论