单调栈
文章平均质量分 76
Linda_yezi_coder
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #772 (Div. 2) A~F
前一段时间总是忙着学校的各种事情,好久没发过博客了,现在更新起来,从一场Codeforces的div2开始吧A. Min Or Sum题目大意给你 nnn 个数记为 aia_iai,你可以进行任意次数的操作,使得这 nnn 个数之和最小。操作:选择两个不同的数 i,ji, ji,j ,以及两个非负整数 x,yx, yx,y,用 xxx 代替 aia_iai,yyy 代替 aja_jaj,且满足 ai∣aj=x∣ya_i | a_j = x|yai∣aj=x∣y思路看到 或 操作,容易想原创 2022-02-21 23:06:16 · 414 阅读 · 0 评论 -
2021杭电多校第三场 1009——Rise in Price
题目大意给你一个 n×nn \times nn×n 的矩阵,每个点有两个值,代表当前点物品的累加的数量和累加的价值,累加的价值就是说你到达了这个点,你所有物品的价值都会累加上这个价值,累加的数量表示你到达了这个点你的物品数量会加上这个值,你每次只能向下或者向右走。问你从 (1,1)(1, 1)(1,1) 走到 (n,n)(n, n)(n,n) 所获得的总价值最大是多少,总价值为数量乘以价值。1≤n≤1001 \leq n \leq 1001≤n≤100解题思路dpdpdp由于每个点有两个状态,我们原创 2021-08-30 18:53:08 · 147 阅读 · 0 评论 -
POJ2796 Feel Good——单调栈
题目链接题目大意给你 nnn 个数,求一个区间和区间的值,定义区间的值为区间内所有数之和乘以区间最小值,输出区间的值以及区间的左右端点解题思路我们考虑每个数作为所在区间的最小值时,这个区间的左右端点是什么。这时,我们可以正反跑两次单调栈,分别得到这个数作为区间最小值时,这个区间的左右端点。考虑正向跑单调栈求区间左端点。维护一个上升的单调栈如果当前元素比栈顶大,直接push进去,这个数的区间左端点就是栈顶元素的下标+1如果当前元素小于等于栈顶元素,一直pop栈直到满足当前元素比栈顶大,然后取栈原创 2021-08-11 15:57:33 · 138 阅读 · 0 评论