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

浙公网安备 33010602011771号