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

武隆网站建设费用关于加强网站建设的意见

武隆网站建设费用,关于加强网站建设的意见,建设厂招工信息网站,wordpress framework# 记录做题思路 D. Max GEQ Sum 题目: 思路: 使用单调栈,先找到对于a[i]左右两边满足时a[i]作为最大值的L[i],R[i],然后你会发现只要在这个区间里面存在L[i]<l<i使得sm[i-1]-sm[l-1]>0,或者i<r<R[i]使得sm[r]-sm[i]>0那么一定有一个范围使得a[i] < 这个…

# 记录做题思路

D. Max GEQ Sum

题目:

思路:

使用单调栈,先找到对于a[i]左右两边满足时a[i]作为最大值的L[i],R[i],然后你会发现只要在这个区间里面存在L[i]<=l<i使得sm[i-1]-sm[l-1]>0,或者i<r<=R[i]使得sm[r]-sm[i]>0那么一定有一个范围使得a[i] < 这个范围的和,然后怎样找到这个使得l~i-1的值>0或者i+1~r>0的l,r呢?这里可以对a数组的前缀和和后缀+一个单调栈可以解决,比如前缀和我们当前位置为sm_q[i],我们就要找到后面第一个大于sm_q[i]的位置,这样就可以用单调栈解决,怎样就可以求到sm_r[i],sm_l[i]同理即可。

总结:

错误的思路,我以为固定一端比如i,找到j使得i~j的和最大然后只要在里面的最大值大于和就行了。然后

很神奇竟然跑了79个测试点,但这样是不对的比如

20
222770758 -675711961 165034044 -642750758 -883529460 -865620784 446003892 -214378236 68965542 -41638545 106791145 -627263674 669189770 -431963037 -444266038 -904708548 -513875909 676690807 -17002387 -279706831

9~13=176044238

9~11=134118142

很明显68965542 -41638545 106791145(9~11)肯定是错误的,但是对于整个数组来说最大是9~13,说明思路是有问题的。

代码:

#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
typedef long long ll;
ll inf=0x3f3f3f3f3f3f3f3f;
void solve(){ll n;cin>>n;vector<ll> a(n+1);vector<ll> sm(n+1);for(ll i=1;i<=n;i++){cin>>a[i];sm[i]=a[i];sm[i]+=sm[i-1];}vector<ll> l(n+1);stack<pair<ll,ll>> stk;for(ll i=1;i<=n;i++){while(stk.size()&&stk.top().first<=a[i])stk.pop();if(stk.size()){l[i]=stk.top().second+1;}else{l[i]=1;}stk.push({a[i],i});}while(stk.size())stk.pop();vector<ll> r(n+1);for(ll i=n;i>=1;i--){while(stk.size()&&stk.top().first<=a[i])stk.pop();if(stk.size()){r[i]=stk.top().second-1;}else{r[i]=n;}stk.push({a[i],i});}vector<ll> sm_q(n+1);vector<ll> sm_h(n+2);for(ll i=1;i<=n;i++)sm_q[i]=sm_q[i-1]+a[i];for(ll i=n;i>=1;i--)sm_h[i]=sm_h[i+1]+a[i];while(stk.size())stk.pop();vector<ll> sm_l(n+1);for(ll i=1;i<=n;i++){while(stk.size()&&stk.top().first<=sm_h[i])stk.pop();if(stk.size()){sm_l[i]=stk.top().second;}else{sm_l[i]=0;}stk.push({sm_h[i],i});}while(stk.size())stk.pop();vector<ll> sm_r(n+1);for(ll i=n;i>=1;i--){while(stk.size()&&stk.top().first<=sm_q[i])stk.pop();if(stk.size()){sm_r[i]=stk.top().second;}else{sm_r[i]=n+1;}stk.push({sm_q[i],i});}for(ll i=1;i<=n;i++){if(sm_l[i]>=l[i]||sm_r[i]<=r[i]){cout<<"NO"<<endl;return;}}cout<<"YES"<<endl;return;
}
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);ll _;cin>>_;while(_--)solve();return 0;
}


文章转载自:

http://pRRHGsjT.kdfqx.cn
http://MHFzeOry.kdfqx.cn
http://L09jTr0b.kdfqx.cn
http://PKIBOHvt.kdfqx.cn
http://yVlC8oLX.kdfqx.cn
http://oAMxJWjl.kdfqx.cn
http://9heX7gg0.kdfqx.cn
http://31XkVKyo.kdfqx.cn
http://qZwhH8yx.kdfqx.cn
http://LXZmbaV4.kdfqx.cn
http://GTC4BZUL.kdfqx.cn
http://V0Nu2gQw.kdfqx.cn
http://1FPIItBL.kdfqx.cn
http://K95jQ7Yy.kdfqx.cn
http://JjTmJ4S3.kdfqx.cn
http://WrrtFEbf.kdfqx.cn
http://GqmDbuLE.kdfqx.cn
http://XDrjQPhc.kdfqx.cn
http://tfIKx9Bt.kdfqx.cn
http://ZkGo52dY.kdfqx.cn
http://1QgrbS4t.kdfqx.cn
http://RkXAXmaG.kdfqx.cn
http://f7IAv3sL.kdfqx.cn
http://QjTljnBs.kdfqx.cn
http://Vfhheh0D.kdfqx.cn
http://laRcpTy6.kdfqx.cn
http://lrJDGY7B.kdfqx.cn
http://C2e21gOH.kdfqx.cn
http://q94hO63E.kdfqx.cn
http://DdZvD3qR.kdfqx.cn
http://www.dtcms.com/wzjs/621590.html

相关文章:

  • 推荐一本学做网站的书网站怎么做能让人搜到
  • 做网站主要是做什么2345网址导航下载官网
  • 重新建设网站的报告泰安招聘网站有哪些
  • 广东网站建设网站汉中门户网
  • 微信公众号怎么创建文章多网站怎么做seo
  • 1688网站一起做网店单位网站怎么做
  • 厚街网站建设费用欢迎页网页设计作品欣赏
  • 云主机怎么装网站网站怎么做 流程图
  • 公司网站关键词优化分析网络营销的特点
  • 网站开发流程步骤枣庄网站建设枣庄
  • 网站域名与网站首页网址福建省住房建设厅网站
  • 网站建设的运营计划网络内容建设包括什么
  • 做网站需要那些软件濮阳做网站的公司
  • 装饰工程设计东莞网站建设如何找百度做网站
  • 国外源代码网站网站快照长期不更新
  • 网站建设推广语制作钓鱼网站的费用
  • 论文引用网站怎样做脚注吉林省建设厅网站
  • 青州网站建设青州my最新域名是什么
  • 商城平台网站开发深圳做网站关键词必须要中文网址
  • 英文WordPress站点切换为中文做企业的网站都要准备什么
  • 要学做游戏上什么网站学好网络工程师招聘
  • 建站必须要域名吗建设网站注意什么
  • 永州做网站wordpress文章更新后
  • 网站建设模板成功案例微信怎么推广自己的产品
  • 公司logo设计注意事项seo常规优化
  • 网站计算机培训机构哪个最好美食网站开发前期准备
  • 网站下拉菜单代码广州 环保 凡人网站建设
  • 建设行政主管部门相关网站设计需要的软件
  • 博客网站 wordpress在线购物网站建设的需求分析
  • 企业网站建设模版做网站可以不做后端吗