关注
楼上大佬单调栈解法太强了
能不能帮忙看看我的代码是否可行,应该是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;
}
查看原帖
点赞 评论
相关推荐
2025-12-18 10:53
南京大学 网页产品经理 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 哪些公司在招寒假实习? #
10979次浏览 133人参与
# 你怎么看待AI面试 #
133043次浏览 742人参与
# MiniMax求职进展汇总 #
578次浏览 23人参与
# 26年哪些行业会变好/更差 #
16320次浏览 221人参与
# 找工作时的取与舍 #
114955次浏览 847人参与
# 去年的flag与今年的小目标 #
8015次浏览 175人参与
# 卷__卷不过你们,只能卷__了 #
9626次浏览 223人参与
# 写论文的崩溃时刻 #
4924次浏览 127人参与
# 腾讯音乐求职进展汇总 #
147461次浏览 1048人参与
# 关于春招你都做了哪些准备? #
122000次浏览 704人参与
# 晒一晒你收到的礼盒 #
95041次浏览 461人参与
# 你不能接受的企业文化有哪些 #
9861次浏览 153人参与
# 有深度的简历长什么样? #
14656次浏览 310人参与
# 求职你最看重什么? #
150725次浏览 875人参与
# 入职第一天 #
8856次浏览 194人参与
# 你都用AI做什么 #
5829次浏览 143人参与
# 你觉得第一学历对求职有影响吗? #
219728次浏览 1226人参与
# 机械人求职现状 #
31631次浏览 292人参与
# 现在前端的就业环境真的很差吗 #
491240次浏览 5955人参与
# 聊聊你的职场新体验 #
310569次浏览 1838人参与
# 工作丧失热情的瞬间 #
346760次浏览 2518人参与
查看1道真题和解析
