当前位置:网站首页>洛谷P2345 MooFest G
洛谷P2345 MooFest G
2022-08-02 17:57:00 【CLH_W】
题目背景
P5094 [USACO04OPEN] MooFest G 加强版
题目描述
约翰的 nn 头奶牛每年都会参加“哞哞大会”。
哞哞大会是奶牛界的盛事。集会上的活动很多,比如堆干草,跨栅栏,摸牛仔的屁股等等。
它们参加活动时会聚在一起,第 ii 头奶牛的坐标为 x_ix
i
,没有两头奶牛的坐标是相同的。
奶牛们的叫声很大,第 ii 头和第 jj 头奶牛交流,会发出 \max{v_i,v_j}\times |x_i − x_j |max{v
i
,v
j
}×∣x
i
−x
j
∣ 的音量,其中 v_iv
i
和 v_jv
j
分别是第 ii 头和第 jj 头奶牛的听力。
假设每对奶牛之间同时都在说话,请计算所有奶牛产生的音量之和是多少。
输入格式
第一行:单个整数 nn,1\le n\le2\times 10^41≤n≤2×10
4
第二行到第 n + 1n+1 行:第 i + 1i+1 行有两个整数 v_iv
i
和 x_ix
i
(1\le v_i,x_i\le2\times 10^41≤v
i
,x
i
≤2×10
4
)。
输出格式
单个整数:表示所有奶牛产生的音量之和
输入输出样例
输入 #1复制
4
3 1
2 5
2 6
4 3
输出 #1复制
57
上代码:
#include<cstdio>
#include<algorithm>
using namespace std;
template<class T>inline void read(T&a){
char c=getchar();int f=1;a=0;
while(c>'9'||c<'0'){
if(c=='-') f=-1;c=getchar();}
while(c<='9'&&c>='0') a=(a<<1)+(a<<3)+c-48,c=getchar();
a*=f;
}
template<class T>void write(T a){
if(a<0) putchar('-'),a=-a;
if(a>9) write(a/10);
putchar(a%10+48);
}
const int o=1e5+10;
long long n,x[o],v[o],p[o],q[o],ans,s1[o],s2[o];
inline bool cmp(int A,int B){
return v[A]<v[B];}
inline bool cmp2(int A,int B){
return x[A]<x[B];}
void cdq(long long p[],long long N){
if(N==1) return;
int md=N>>1,i,j;
cdq(p,md);cdq(p+md,N-md);
for(i=1;i<=N;++i) q[i]=p[i];
sort(p+1,p+md+1,cmp2);sort(p+md+1,p+N+1,cmp2);
for(i=md+1;i<=N;++i) s1[i-md]=s1[i-md-1]+v[p[i]],s2[i-md]=s2[i-md-1]+v[p[i]]*x[p[i]];
for(i=1,j=md+1;i<=md&&j<=N;)
if(x[p[i]]<x[p[j]]) ans+=x[p[i]]*(2*s1[j-md-1]-s1[N-md])-2*s2[j-md-1]+s2[N-md],++i;else ++j;
if(j==N+1) for(;i<=md;++i) ans+=x[p[i]]*(2*s1[j-md-1]-s1[N-md])-2*s2[j-md-1]+s2[N-md];
for(i=1;i<=N;++i) p[i]=q[i];
}
int main(){
read(n);
for(int i=1;i<=n;++i) read(v[i]),read(x[i]),p[i]=i;
sort(p+1,p+1+n,cmp);
cdq(p,n);
write(ans);
return 0;
}
边栏推荐
猜你喜欢
随机推荐
危及安全的常见物联网攻击有哪些?
Gear 月度更新|6 月
分布式 | dble 启动的时候做了什么之配置检测
灵动微电子发布低功耗 MM32L0130 系列 MCU 产品
KunlunBase 1.0 is released!
深圳地铁16号线二期进入盾构施工阶段,首台盾构机顺利始发
54.【system系统互动函数大总结】
织梦自定义表单添加全选和全不选功能按钮
TSF微服务治理实战系列(一)——治理蓝图
查看数据库数据量大小,占用磁盘大小
知识点滴 - 什么是iAP2 (上)
MySQL表的约束
Technical life | How to draw a big picture of business
注释
今年上半年,我国公路建设总体形势持续向好
白话电子签章原理及风险
VSTO踩坑记录(1)- 从零开始开发outlook插件
Go 语言快速入门指南:第二篇 变量与常量
我用这一招让团队的开发效率提升了 100%!
LeetCode 2349. 设计数字容器系统(SortedSet)








