博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【POJ1990】【Luogu 5094】【USACO2004open】MooFest
阅读量:4648 次
发布时间:2019-06-09

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

$O(n^2)$的暴力十分好写,现在来优化。

预处理:将牛按v从小到大排序。

需要维护两个数据:之前的牛在当前牛i左、右的牛数量以及它们的坐标。

易知i到左边所有牛的距离和=在左边的牛数×当前牛坐标-牛的坐标和。

相应地,i到左边所有牛的距离和=牛的坐标和-在右边的牛数×当前牛坐标。

开两个树状数组维护即可。

sort(a+1,a+1+n,cmp);for(int i=1;i<=n;++i){	add(a[i].p,1ll,c1);add(a[i].p,a[i].p,c2);	lsum=(ll)a[i].p*ask(a[i].p-1,c1)-ask(a[i].p-1,c2);	rsum=ask(maxp,c2)-ask(a[i].p,c2)-(ll)a[i].p*(ask(maxp,c1)-ask(a[i].p,c1));	ans+=a[i].v*(lsum+rsum);}

 

转载于:https://www.cnblogs.com/xzs123456/p/10427656.html

你可能感兴趣的文章
收藏一个URL解析的通用方法
查看>>
设计模式大赛 -- 大话设计模式
查看>>
STA 137 Topics covered this week
查看>>
JavaScript求两点之间相对于Y轴的顺时针旋转角度
查看>>
adb常用命令的介绍及使用
查看>>
数据科学可视化之要途
查看>>
django 笔记17 ModelForm
查看>>
sqlserver 插入数据时异常,仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'XXXXX.dbo.XXXXXXXXX'中的标识列指定显式值。...
查看>>
PS 滤镜算法原理——染色玻璃
查看>>
python之os模块
查看>>
yii2 刷新缓存(刷新模型缓存)
查看>>
SecureCRT突然卡死的问题
查看>>
DevExpress.XtraGrid.Views.Grid.GridView 选中行焦点的滚动条的位置
查看>>
Android类参考---Fragment(五)
查看>>
【Web动画】SVG 实现复杂线条动画
查看>>
修改mysql数据库默认存储引擎和默认编码
查看>>
[TJOI2009] 战争游戏
查看>>
eclipse error
查看>>
微信小程序运行机制
查看>>
安卓新发布机制----app bundle
查看>>