随笔分类 -  基本算法—单调栈

摘要:题目的大致意思是,给你n个数,我们需要计算一个值,这个值是这个序列中的一段连续的子序列里的最小值*这段这段连续子序列的和,我们要使得求得的这个值最大,比如样例6 3 1 6 4 5 2,我们选择6 4 5这段连续的子序列,值为4*(6+4+5)=60。 首先对于每个数a[i],我们想让他最大可能的往 阅读全文
posted @ 2019-03-22 14:46 TLE自动机 阅读(199) 评论(0) 推荐(0)
摘要:P1823 [COI2007] Patrik 音乐会的等待 题解:维护一个单调不递增的栈 首先说明一下:由于一个人左边可以看到一些人,右边可以看到一些人,可以我们仅从一边考虑,对于一个人,我们考虑它的左边能看到多少个。两边都考虑会导致重复计算。 tot是当前栈元素的个数 对于新加入单调栈的一个元素, 阅读全文
posted @ 2019-02-12 13:55 TLE自动机 阅读(362) 评论(0) 推荐(0)
摘要:悬线法,刚学的 转移方程 #include<iostream> #include<algorithm> using namespace std; typedef long long ll; const int maxn = 1e3+ 5; int n, m; int a[maxn][maxn]; / 阅读全文
posted @ 2019-02-11 16:31 TLE自动机 阅读(223) 评论(0) 推荐(0)