关注
楼上大佬单调栈解法太强了
能不能帮忙看看我的代码是否可行,应该是O(nlogn)的复杂度。
dp[i]表示 以i为结尾的子序列的最大值的和
const int maxn = 1e5+7;
typedef long long ll;
int pos[maxn];
int val[maxn*10];
ll dp[maxn*10];
int max_pos(int s, int e)
{
if(s > e) return -1;
if(s == e) return pos[s];
int mid = s + (e-s)/2;
int l = max_pos(s,mid);
int r = max_pos(mid+1,e);
return l > r ? l : r;
}
int main()
{
int n;
while(~scanf("%d",&n)) {
int mx = -1;
for(int i = 0;i < n;i ++) {
scanf("%d",val+i);
mx = max(mx,val[i]);
}
double sum = 0;
memset(pos,-1,sizeof(pos));
for(int i = 0;i < n;i ++) {
int p = max_pos(val[i]+1,mx);
pos[val[i]] = i;
if(p == -1) dp[i] = val[i] * 1LL * (i-p);
else dp[i] = dp[p] + val[i] * 1LL * (i-p);
sum += dp[i];
}
sum = 2*sum / ((n+1) * n);
printf("%.6lf\n",sum);
}
return 0;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
11-02 23:41
内蒙古工业大学 Java 点赞 评论 收藏
分享
123123d:简历还没有你的照片清晰,你到底是来秀照片,还是改简历的
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 2025年终总结 #
162975次浏览 2754人参与
# 长城汽车工作体验 #
12700次浏览 16人参与
# 牛客2025仙途报告 #
186次浏览 3人参与
# 你面试体验感最差/最好的公司 #
11212次浏览 185人参与
# 大家实习每天都在干啥 #
105812次浏览 569人参与
# 总结:哪家公司面试体验感最差 #
83105次浏览 387人参与
# 比亚迪工作体验 #
72753次浏览 275人参与
# 一人说一个提前实习的好处 #
6651次浏览 125人参与
# 秋招落幕,你是He or Be #
6800次浏览 148人参与
# 重来一次,你会对开始求职的自己说 #
4708次浏览 120人参与
# 实习没事做是福还是祸? #
11232次浏览 180人参与
# 今年你最想重开的一场面试是? #
2315次浏览 35人参与
# 团建是“福利”还是是 “渡劫” #
5623次浏览 131人参与
# 你小心翼翼的闯过多大的祸? #
9300次浏览 130人参与
# 运营来爆料 #
71551次浏览 450人参与
# 长鑫存储求职进展汇总 #
52074次浏览 240人参与
# 招聘要求与实际实习内容不符怎么办 #
144056次浏览 869人参与
# 工作中听到最受打击的一句话 #
4116次浏览 81人参与
# 如何排解工作中的焦虑 #
246412次浏览 2268人参与
# 大厂VS公务员你怎么选 #
73007次浏览 666人参与
