当前位置: 首页 > news >正文

手机报价网站大全宣传片拍摄内容

手机报价网站大全,宣传片拍摄内容,广州番禺区天气预报15天,上海十大策划公司排名1.单调栈的模版 4种情况 代码实现&#xff1a; //1.找数字左侧比它大并且是最近的数的下标 //单调栈&#xff1a;单调递减&#xff0c;如果比它小&#xff0c;不要&#xff0c;比它大&#xff0c;推入队列 #include<iostream> #include<stack> #include<vect…

1.单调栈的模版

 4种情况 

 

代码实现: 

//1.找数字左侧比它大并且是最近的数的下标
//单调栈:单调递减,如果比它小,不要,比它大,推入队列
#include<iostream>
#include<stack>
#include<vector>
using namespace std;const int N = 1e3 + 10;
int n;
int a[N];
int ret[N];
//1.找左侧最近的且比它大的数字
void fun1()
{stack<int> s;for (int i = 1; i <= n; i++){int t = a[i];while (s.size() && a[s.top()] <= t)s.pop();if (s.size())ret[i] = s.top();s.push(i);}for (int i = 1; i <= n; i++){cout << ret[i] << " ";}
}
//2.找左侧最近且比它小的数字
void fun2()
{stack<int> s;for (int i = 1; i <= n; i++){int t = a[i];while (s.size() && a[s.top()] >= t)s.pop();if (s.size())ret[i] = s.top();s.push(i);}for (int i = 1; i <= n; i++){cout << ret[i] << " ";}
}
//3.找右侧最近且比它大的元素,1的逆序
void fun3()
{stack<int> s;for (int i = n; i >= 1; i--){int t = a[i];while (s.size() && a[s.top()] >= t)s.pop();if (s.size())ret[i] = s.top();s.push(i);}for (int i = 1; i <= n; i++){cout << ret[i] << " ";}
}
//4.找右侧最近且比它小的元素,2的逆序
void fun2()
{stack<int> s;for (int i = n; i >= 1; i--){int t = a[i];while (s.size() && a[s.top()] >= t)s.pop();if (s.size())ret[i] = s.top();s.push(i);}for (int i = 1; i <= n; i++){cout << ret[i] << " ";}
}
int main()
{cin >> n;for (int i = 1; i <= n; i++)cin >> a[i];fun2();}

注意:

栈里面存的是元素的下标。

总结和巧记 :

1.记录详情 - 洛谷 | 计算机科学教育新生态

 

#include<iostream>
#include<stack>
using namespace std;int n;
const int N = 3e6+10;
int a[N];
int ret[N];int main()
{cin>>n;for(int i = 1;i <= n;i++)cin>>a[i];stack<int> s;for(int i = n;i >= 1;i--){int t = a[i];while(s.size()&&a[s.top()]<=t)s.pop();if(s.size())ret[i] = s.top();s.push(i);}for(int i = 1;i <= n;i++)cout<<ret[i]<<" ";
}

2.P1901 发射站 - 洛谷

 

#include<iostream>
#include<stack>
using namespace std;const int N = 1e6 + 10;
int h[N], v[N];
int ret[N];int main()
{int n; cin >> n;for (int i = 1; i <= n; i++){cin >> h[i] >> v[i];}stack<int> s;//找左边最近且比它大的元素for (int i = 1; i <= n; i++){int t = h[i];//当前元素while (s.size() && h[s.top()] <= t)//在栈中找到一个比它大的元素{s.pop();}if (s.size())ret[s.top()] += v[i];//比它大的元素加上它的powers.push(i);//把该元素推进栈中}//清空栈while (s.size())s.pop();//找右边最近且比它大的元素for (int i = n; i >=1; i--){int t = h[i];while (s.size() && h[s.top()] <= t){s.pop();}if (s.size())ret[s.top()] += v[i];//比它大的元素加上它的powers.push(i);}int res = 0;for (int i = 1; i <= n; i++){res = max(res, ret[i]);}cout << res << endl;
}

前后使用单调栈,找出左右离他最近并且比它的元素,把它的power加到该元素下,再把下标推入栈中

3.SP1805 HISTOGRA - Largest Rectangle in a Histogram - 洛谷

 

#include<iostream>
#include<stack>
using namespace std;typedef long long LL;
const int N = 1e5 + 10;
LL a[N];
LL l[N];//记录每个元素左侧比它小的元素的下标
LL r[N];//记录每个元素右侧比它小的元素的下标
int n;int main()
{while (cin >> n, n){for (int i = 1; i <= n; i++)cin >> a[i];stack<int> s;//找每个元素左边比它小的元素的下标for (int i = 1; i <= n; i++){int t = a[i];while (s.size() && a[s.top()] >= t){s.pop();}if (s.size())l[i] = s.top();else l[i] = 0;//找不到的话,栈就变成空了,就把左侧设置成0s.push(i);}//清空栈while (s.size())s.pop();//找每个元素右侧比它小的元素的下标for (int i = n; i >= 1; i--){int t = a[i];while (s.size() && a[s.top()] >= t)s.pop();if (s.size())r[i] = s.top();else r[i] = n + 1;//找不到的话,栈就变成空了,就把左侧设置成n+1s.push(i);}LL ret = 0;for (int i = 1; i <= n; i++){ret = max(ret, a[i] * (r[i] - l[i] - 1));}cout << ret << endl;}
}

 找到每个元素左右侧的最近的较小值的下标,->长

自己的高->高

遍历,面积找最大值

注意:

当超过边界的时候,栈就为空,左侧设置成0 ,右侧设置成n+1

http://www.dtcms.com/a/435999.html

相关文章:

  • BTS7960 四轮前进测试 workable solution
  • 网站架设流程专门app软件制作费用
  • 计算机网站建设维护的目的wordpress 系统需求
  • 无形资产 网站建设官方网站建设与维护好处
  • 程序员用来做笔记的网站网站源码绑定域名
  • 网站建设开发ppt模板德州建设街小学网站
  • 【代码随想录day 34】 力扣 62.不同路径II
  • 哪些公司做网站好河南营销型网站建设
  • 做网站需要写程序绿色营销案例100例
  • 【Linux】进程间通信(1)
  • 域名所有人是网站名不能转出用凡科做网站要钱吗
  • asp.net网站开发上网站开发哪家公司电话
  • 个人做的网站有什么危险吗万网官网域名注册多少钱
  • 网站机房建设成本某公司网络营销现状分析
  • 服务器主机 网站安阳企业网站优化外包
  • DS container adapters <B> priority_queue in Huffman Algorithm 2/99
  • 英语学习-Saints042
  • 建立网站条件一级域名如何分发二级域名
  • wordpress发布失败手机网站优化需要注意什么
  • 北京模板网站建设wordpress远程本地化
  • 【P0】Spring Cloud 面试篇
  • freertos内部机制
  • 苏州公司做变更网站建筑工程网站建设
  • 广州最好网站建设公司石家庄网站制作仓谷
  • 腾讯企点客户通长沙网站seo推广公司哪家好
  • 如何查看网站是哪家公司做的?双wordpress自动同步文章
  • 婚礼策划公司优化推广网站怎么做最好
  • 天津企业设计网站建设wordpress注册不成功
  • 何为“类”?(Java基础语法)
  • 德城区建设局网站建设部特殊工种查询网站