get 到的

这种需要求 含 max 的式子枚举最大值的方法非常普遍。

类似的,还有含 min , gcd 的式子,枚举他们也很普遍

主要难点

我们首先想到,先按 v 从小到大排序,因为这样既可以简化题意(即题意:每次都只需求第i头牛 之前的牛的坐标与x[i]差的绝对值 的和(设为s_ans),最后乘以个v[i]即可,(这个应该就是枚举max了) ); 又可以避免重复计算距离

思考难点(即简化后的题意): 已知是考树状数组的题目,又知它方便于求和。

于是...我们点开了题解...

定义:第i头牛前面有num头牛的x坐标比x[i]小,并且他们的和为sum

思考得s_ans =i头牛前面的,xx[i]的牛对答案的贡献s1 +i头牛前面的,xx[i]的牛对答案的贡献s2

s1 = num * a[i].x - sum;

s2 = all - sum - a[i].x * (i-1-num);

#include<cstdio>
#include<algorithm>
using namespace std;
#define lowbit(x) x&(-x)
const int MAX = 20000+9; int n;
long long ans;
int t_n[MAX]/*num*/, t_sum[MAX];
struct node{
int x, v;
bool operator < (const node& xx) const {
return v < xx.v;
}
}a[MAX]; void add(int x, int k, int *t) {
while(x <= MAX) t[x] += k, x += lowbit(x);//注意:坐标求和的右边界不是n
}
int query(int x, int *t) {
int res = 0;
while(x) {res += t[x], x -= lowbit(x);}
return res;
} int main() {
freopen("01.in","r",stdin);
freopen("01.out","w",stdout);
scanf("%d", &n);
for(int i = 1; i <= n; i++) scanf("%d%d",&a[i].v, &a[i].x);
sort(a+1, a+1+n);
int all = 0, num, sum;
for(int i = 1; i <= n; i++) {
num = query(a[i].x, t_n);//先query再add,因为求的是i牛前面的
sum = query(a[i].x, t_sum);
ans += (long long)( num*a[i].x-sum + all-sum-a[i].x*(i-1-num) )*a[i].v;
add(a[i].x, 1, t_n);
add(a[i].x, a[i].x, t_sum);//?
all += a[i].x;
}
printf("%lld\n",ans);
return 0;
}

luoguP5094 [USACO04OPEN]MooFest 狂欢节的更多相关文章

  1. [bzoj3378][Usaco2004 Open]MooFest 狂欢节_树状数组

    MooFest 狂欢节 bzoj-3378 Usaco-2004 Open 题目大意:给定一个n个数的a序列,每两个数之间有一个距离,两个点之间的权值为$max(a[i],a[j])*dis(i,j) ...

  2. bzoj3378[Usaco2004 Open]MooFest 狂欢节*

    bzoj3378[Usaco2004 Open]MooFest 狂欢节 题意: n只奶牛,第i只听力为vi,坐标为xi,两只奶牛聊天时音量是max(vi,vj)*abs(xi-xj).求n(n-1)/ ...

  3. BZOJ3378:[USACO]MooFest 狂欢节(树状数组)

    Description 每一年,约翰的N(1≤N≤20000)只奶牛参加奶牛狂欢节.这是一个全世界奶牛都参加的大联欢.狂欢节包括很多有趣的活动,比如干草堆叠大赛.跳牛栏大赛,奶牛之间有时还相互扎屁股取 ...

  4. [BZOJ3378] [Usaco2004 Open]MooFest 狂欢节(树状数组)

    传送门 开2个树状数组 一个存的是下标,一个存的是数量 细节...看标称吧,懒得说了,好气啊 #include <cstdio> #include <iostream> #in ...

  5. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  6. POJ 1990 MooFest(树状数组)

                                                                        MooFest Time Limit: 1000MS   Mem ...

  7. “双十一”购物狂欢节,电商运营和商业智能(BI)才是绝配

         百年前,人们获取信息的方式是通过报纸.书籍:十年前,人们获取信息的方式是通过传统PC互联网:而如今,在4G网络高速发展的浪潮下,伴随着移动智能终端的普及,人们获取信息的方式已经逐渐转向了移动 ...

  8. MooFest POJ - 1990 (树状数组)

    Every year, Farmer John's N (1 <= N <= 20,000) cows attend "MooFest",a social gather ...

  9. [USACO] 2004 Open MooFest 奶牛集会

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

随机推荐

  1. 高通平台开机LOGO修改LK(bootloader)下实现【转】

    网络上已经有许多在kernel中修改开机Logo的文章,本文就LK下实现开机logo进行简述 需要用到ffmpeg工具,没有安装ffmpeg请参考这里: http://blog.csdn.net/re ...

  2. go语言设计模式之builder

    builder.go package builder type BuildProcess interface { SetWheels() BuildProcess SetSeats() BuildPr ...

  3. python中copy()和deepcopy()详解

    **首先直接上结论: —–我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在.所以改变原有被复制对象不会对已经复制出来的新对象产生影响.—–而浅复制并不会产生一个独立的 ...

  4. AtCoder Grand Contest 039

    Preface 我发现我现在打AT真的是只会D-Before-- E,F都是抄曲明姐姐的,然后D还是几何画板猜结论做的(证明都是陈指导想的) 看来再这样下去就真的要退役了啊233 A - Connec ...

  5. MySQL中使用group_concat遇到的坑

    在使用group_concat的过程中遇到个问题,这里记录一下:在MySQL中有个配置参数group_concat_max_len,它会限制使用group_concat返回的最大字符串长度,默认是10 ...

  6. JAVA 十六进制和十进制、二进制转换

    java十六进制和十进制.二进制转换 十进制转化成十六进制 Integer x = 100; hex = x.toHexString(x); 十六进制转化成十进制 Integer.parseInt(h ...

  7. pytorch_08_RNN

    1.循环神经网络的提出是基于记忆模型的想法,期望网络能够记住前面出现的特征,并依据特征推断后面的结果,而且整体的网络结构不断循环,因而得名循环神经网络. 2.循环神经网络的基本结构特别简单,就是将网络 ...

  8. 【raid级别】RAID级别工作模式

    友情链接 磁盘分区,格式化,挂载,创建交换分区:https://www.cnblogs.com/HeiDi-BoKe/p/11936998.html RAID工作级别:https://www.cnbl ...

  9. CENTOS 7 内网网段在用IP地址检测Shell脚本优化版

    脚本内容 #!/bin/bash ############################################################################# # 用途: ...

  10. git报错:failed to push some refs to 'git@github.com:JiangXiaoLiang1988/CustomerHandl

    一.错误信息 今天在使用git将代码上传到GitHub的时候报下面的错误: 以前上传代码的时候重来没有出现这种错误,在网上查找了半天终于找到原因了:github中的README.md文件不在本地代码目 ...