luogu 传送门 双倍经验!
树状数组题
v[i]只有当和比它小的v[j]一起运算时才对答案有贡献。
我们可以这样来处理,离线来做。将所有奶牛按照v升序排序,然后一个奶牛一个奶牛的查询,再插入。
我们要树状数组来维护一个数组cnt[i],和sum[i]表示i-lowbit(i) ~ i范围内数的个数和这些数的和。
我们查询时,记num1为前i-1头奶牛中小于x[i]的头数,num2为大于等于x[i]的头数(num2=i-1-num1),s1为1~x[i]范围内数的和收,tot为前i-1头奶牛x[]之和,s2=tot-s1。那么每头奶牛对答案的贡献是v[i]*(num1*xi-s1+s2-num2*xi)//去掉绝对值符号嘛。

#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<algorithm>
#define LL long long
#define M 100005
using namespace std;
int n;
struct H{LL x,v;
}st[M];
LL cnt[20009],sum[20009];
LL ans,num,s,maxn,tot;
bool cmp(H a,H b){return a.v<b.v;}
void ask(int x)
{for(int i=x;i>=1;i-=i&(-i))num+=cnt[i],s+=sum[i];
}
void add(int x)
{for(int i=x;i<=maxn;i+=i&(-i))cnt[i]+=1,sum[i]+=x;
}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%lld%lld",&st[i].v,&st[i].x),maxn=max(maxn,st[i].x);sort(st+1,st+n+1,cmp);for(int i=1;i<=n;i++){num=0,s=0;ask(st[i].x);ans+=st[i].v*(2*num*st[i].x+tot-2*s-(i-1)*st[i].x);tot+=st[i].x;add(st[i].x);       }printf("%lld",ans);return 0;
}

转载于:https://www.cnblogs.com/dfsac/p/7587835.html

P2345 奶牛集会/P2657 低头一族相关推荐

  1. luogu P2345 奶牛集会

    二次联通门 : luogu P2345 奶牛集会 /*luogu P2345 奶牛集会权值线段树以坐标为下标, 坐标为值建立线段树 对奶牛按听力由小到大排序对于要查的牛 每次第i次放入奶牛起作用的v就 ...

  2. 洛谷 P2345 奶牛集会 解题报告

    P2345 奶牛集会 题目背景 MooFest, 2004 Open 题目描述 约翰的N 头奶牛每年都会参加"哞哞大会".哞哞大会是奶牛界的盛事.集会上的活动很 多,比如堆干草,跨 ...

  3. P2345 奶牛集会(树状数组/CDQ分治)

    题目描述 约翰的N 头奶牛每年都会参加"哞哞大会".哞哞大会是奶牛界的盛事.集会上的活动很多,比如堆干草,跨栅栏,摸牛仔的屁股等等.它们参加活动时会聚在一起,第i 头奶牛的坐标为X ...

  4. P2345 奶牛集会

    题目描述 约翰的N 头奶牛每年都会参加"哞哞大会".哞哞大会是奶牛界的盛事.集会上的活动很多,比如堆干草,跨栅栏,摸牛仔的屁股等等.它们参加活动时会聚在一起,第i 头奶牛的坐标为X ...

  5. P2345 奶牛集会(树状数组or模拟)

    题目背景 MooFest, 2004 Open 题目描述 约翰的N 头奶牛每年都会参加"哞哞大会".哞哞大会是奶牛界的盛事.集会上的活动很 多,比如堆干草,跨栅栏,摸牛仔的屁股等等 ...

  6. 读数据优化 绝对值函数优化 加速 示范程序 洛谷P2345奶牛集会

    # pragma G++ optimize "O3"//一号加速 #include<cstdio> #include<cctype> #include< ...

  7. usaco 奶牛集会 奶牛抗议

    奶牛集会 Description 约翰家的N头奶牛每年都会参加"哞哞大会" .哞哞大会是世界奶牛界的盛事.集会上 的活动很多,比如堆干草,跨栅栏,摸牛仔的屁股等等.当然,哞哞大叫肯 ...

  8. USACO 2004 MooFest 奶牛集会

    题目 问题描述 约翰的n 头奶牛每年都会参加"哞哞大会".哞哞大会是奶牛界的盛事.集会上的活动很多,比如堆干草,跨栅栏,摸牛仔的屁股等等.它们参加活动时会聚在一起,第i 头奶牛的坐 ...

  9. 在这个智能数字时代,处处拉拢着我们的视线,那么低头一族可还记得儿时上学的45分钟吗?劳逸结合,多动动!...

    给大家推荐个APP,"点心闹钟",这个APP不是我开发的,APP的开发者我也不认识. 但是 久坐不动的程序源们应该需要:就算BOSS管制严格,简单的闭眼动颈也该有... 躺在我上铺 ...

最新文章

  1. 我一不小心把ubuntu里的ps这样的命令删掉了,应该怎么重装呢
  2. FAT AP和FIT AP 区别 (无线篇)
  3. Flutter瀑布流及通用列表解决方案
  4. java8中的map与flatmap区别
  5. Linux内核基础--事件通知链(notifier chain)【转】
  6. matlab中批量tiff转png,图片(jpg,png,tif等)批量转dicom(dcm)格式
  7. laravel 5.2 异常处理页面
  8. Mybatis foreach逗号分隔字符串遍历方式
  9. STM32 固件包下载
  10. Winamp v5.62
  11. H.264编码实验--JM18.6H264Visa
  12. 苹果电脑mysql_MacBook 安装 MySQL 5.7.29(新手都看得懂的安装教程)
  13. 从冬奥会看中国科技:全民感谢的高速摄像机,有何玄机?
  14. 【软考信息系统项目管理师】必背重点之信息化和信息系统
  15. script加密解密工具下载
  16. java周总结1113_流总结_序列化_xml_html
  17. Ubuntu 安装Chrome(DEB 出现问题使用)
  18. excel提取括号内的内容
  19. 简单快速复制CSDN上的博客到自己的电脑上(带图片和格式)
  20. pip:指定多个源/内部源

热门文章

  1. Linux查看系统cpu个数、核心数、线程数
  2. Python 动态获取对象的属性和方法(内含inspect)
  3. 使用word2vec训练中文词向量
  4. H3C DHCP服务器显示及维护
  5. HDU 5781 ATM Mechine(概率dp)
  6. LA 3523 圆桌骑士
  7. 你的iOS静态库该减肥了
  8. Flume1.5.0的安装、部署、简单应用(含伪分布式、与hadoop2.2.0、hbase0.96的案例)
  9. AsyncTask理解- Day36or37
  10. Android关闭Activity