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

武汉网站推广服务软件百度竞价怎么做

武汉网站推广服务软件,百度竞价怎么做,自己做网站练手,网络平台图片# 记录做题思路 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://www.dtcms.com/wzjs/453906.html

相关文章:

  • 网站是如何做的好搜索引擎营销的方式
  • 个人网站app企业网站设计优化公司
  • 开网站备案流程最新国际新闻热点事件
  • 温州瓯海建设局网站优化法治化营商环境
  • 东莞销售网站设计西安seo代运营
  • 云南网站建设专业品牌做什么推广最赚钱
  • wordpress访客长沙网站seo哪家公司好
  • 长沙建设网站的公司学网络营销去哪个学校
  • 公司网站建设推广今天的最新消息新闻
  • 途牛网网站是哪家公司做的在线bt磁力搜索
  • 每平设计家官网北京seo网站开发
  • 中卫市建设局网站seo代码优化步骤
  • 个人网站备案申请免费网络推广的方法
  • 网站开发的网页模板创建网站要钱吗
  • 最新章节 第四百六十二章 花两亿做的网站平台推广营销
  • 上海做网站费用吸引人的微信软文
  • 公司网站自己可做吗推广联系方式
  • 做网站要用什么软件图文教程宁波百度快照优化排名
  • 网站seo诊断报告例子网络服务主要包括
  • 盐城网站建设网站制作推广2020国内搜索引擎排行榜
  • 做热区的网站投诉百度最有效的电话
  • 昆明专业网站建设模板seo引擎搜索网站
  • wpf做网站教程推广公司有哪些
  • 政府网站的建设目标引流推广方案
  • 自己做的网站显示不出来吸引顾客的营销策略
  • 用css做网站菜单济南seo关键词优化方案
  • 自微网站首页免费下载百度到桌面
  • 合肥网站制作哪家好优化大师的功能有哪些
  • 帝国cms做笑话网站seo关键字排名优化
  • 自己怎做网站后台郑州seo全网营销