51nod 1215 数组的宽度
发布日期:2022-03-12 04:49:18 浏览次数:68 分类:技术文章

本文共 1198 字,大约阅读时间需要 3 分钟。

题目链接:

题意:

 

 

分析:

计算出每一个数字作为最大值,最小值的范围;

然后结果就是乘法原理,因为,左右端点可以任意组合;

1 #include 
2 3 using namespace std; 4 5 int n; 6 const int maxn = 5e4+10; 7 struct num { 8 long long value; 9 int maxleft,maxright;10 int minleft,minright;11 num():maxleft(1),maxright(1),minleft(1),minright(1){}12 }a[maxn];13 14 stack
> S;15 16 17 void getMax()18 {19 while(!S.empty())20 S.pop();21 S.push(make_pair(a[0].value,0));22 for(int i=1;i
=a[i].value) {51 //int value = S.top().first;52 int key = S.top().second;53 S.pop();54 55 a[i].minleft +=a[key].minleft;56 if(!S.empty()) {57 a[S.top().second].minright +=a[key].minright;58 }59 }60 S.push(make_pair(a[i].value,i));61 }62 while(!S.empty()) {63 int key = S.top().second;64 S.pop();65 if(!S.empty()) {66 a[S.top().second].minright +=a[key].minright;67 }68 }69 }70 71 int main()72 {73 74 scanf("%d",&n);75 for(int i=0;i
View Code

 

转载于:https://www.cnblogs.com/TreeDream/p/6819031.html

转载地址:https://blog.csdn.net/weixin_30348519/article/details/98104349 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:我学习USB设计的历程【转】
下一篇:学习进度11

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月14日 07时48分59秒