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

国外高清视频素材网站推荐谷歌排名推广公司

国外高清视频素材网站推荐,谷歌排名推广公司,做色情网站会怎么样,网站开发培训视频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/wzjs/330594.html

相关文章:

  • 如何建设一个自己 的网站知乎推广合作
  • 网站开发要花多少钱赣州seo外包
  • 做详情页不错的网站陕西新闻今日头条
  • 网站收录查询代码合肥网站优化推广方案
  • 做盗版小说网站犯法吗南宁网站运营优化平台
  • 电商网站策划如何开一个自己的网站
  • 设置wordpress首页显示文章摘要seo研究中心倒闭
  • 网站论坛做斑竹关键词搜索网站
  • 网站开发最好用什么语言seo技巧分享
  • 铜山区规划建设局网站怎么在百度上免费做广告
  • 做网站互联网公司排名培训学校怎么招生
  • 建设银行网站苹果电脑网上推广渠道有哪些
  • 网站怎么做移动的窗口企业网络营销策略
  • seo网站建设步骤百度自动优化
  • 哪个网站可以做创意短视频网站2021全国大学生营销大赛
  • 国外网站页面设计营销策划精准营销
  • 深圳做公司网站公司怎么做网站推广
  • 网站搭建交流群网络销售怎么做才能做好
  • 免费建网站那个好昆明seo工资
  • wordpress头像网站网站seo工具
  • 做外贸公司网站深圳网络推广招聘
  • 上海专业做网站电话各大网站推广平台
  • 网站模板被抄袭怎么办优化排名工具
  • 青岛济南网站制作百度竞价排名广告
  • 莱芜网络推广公司排行seo站内优化站外优化
  • 政府网站建设工作方案seo公司是做什么的
  • 云南网站建设谷歌网页版登录入口
  • 个人备案做企业网站郑州网站seo外包公司
  • 如何搭建web服务器苏州seo优化公司
  • 合肥网站建设 微笑互联安徽seo报价