![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM模板
孰能生巧
丿Struggle丶
这个作者很懒,什么都没留下…
展开
-
悬线法,单调栈解决 HDU6957 Maximal submatrix
悬线法可以用来解决最大子矩阵等问题 模板题目:https://www.luogu.com.cn/problem/SP1805 大意:在一条水平线上有n个宽为1的矩形,求包含于这些矩形的最大子矩形面积。 代码 /* l[i]:为当前位置i的悬线能扩展到的最左边的位置,初始为i ,我们需要进一步判断还能不能进一步往左扩展。 如果当前l[i]==1 ,则已经扩展到了边界,不可以。 如果当前a[i] > a[l[i] - 1],则从当前悬线扩展到的位置不能再往左扩展了。 如果当前a[i] <= a[l[原创 2021-09-16 15:57:58 · 103 阅读 · 0 评论 -
平均值最大连续子区间
二分答案+前缀和+维护区间长度 题目要求:求区间长度>=F的平均值最大的连续子区间的平均值 #include<bits.stdc++.h> using namespace std; const int N = 100010; int n, F; double a[N], s[N]; bool check(double avg){ for (int i = 1; i <= n; i ++ ) s[i] = s[i - 1] + a[i] - avg; double mi原创 2021-07-26 21:05:22 · 942 阅读 · 0 评论 -
最短路——bellman-ford算法
适用条件 Bellman-ford算法适用于单源最短路径,图中边的权重可为负数即负权边,但不可以出现负权环。和有边数限制的最短路 。 #include<bits/stdc++.h> using namespace std; const int N = 1e4+5; int n,m,k,d[N]; struct node{ int a; int b; int v; }edge[N]; int pre[N]; int bellman_ford(){ mem原创 2021-05-02 00:06:28 · 121 阅读 · 0 评论 -
最短路问题——dijkstra算法
算法思想 Dijkstra算法采用的是一种贪心策略 1.首先声明一个数组dis来保存起始点到各顶点的最短距离。 再声明一个数组vis,用来标记已经找到的最短经的点。 设vis是保存已经找到最短路径顶点的集合 T 2.首先从起点开始,每次从待加入集合T的点中找到一个顶点u,该顶点是与集合 T距离最近的点,然后将该顶点加入集合T,更新与该顶点有边的其他顶点v d[v]=min(d[v],d[u]+w(u,v)) (1)若顶点v,已经在集合中: 这样更新保证了集合T中的顶点u,对应d[u]都是最原创 2021-04-27 14:17:34 · 224 阅读 · 0 评论