https://codeforces.com/contest/1311/problem/F

这是一道线段树类型的题;

可以用权值线段树或者树状数组来解;

所以,我们可以分为两部分,第一部分是计算出到当前点位置,小于等于当前点的速度的个数 ,总的个数乘当前点的速度

减去 小于等于当前点的速度的坐标总值即为答案;

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=2e5+;
int b[maxn];
struct node
{
int x,v;
}a[maxn];
bool cmp(node t1,node t2)
{
return t1.x<t2.x;
}
struct tre
{
int l;int r;
ll sum;
int num;
}tree[maxn<<];
void pushup(int root)
{
tree[root].sum=tree[root<<].sum+tree[root<<|].sum;
tree[root].num=tree[root<<].num+tree[root<<|].num;
}
void build(int l,int r,int root)
{
tree[root].l=l;tree[root].r=r;
tree[root].sum=;tree[root].num=;
if(l==r) return;
int mid=l+r>>;
build(l,mid,root<<);
build(mid+,r,root<<|);
pushup(root);
}
void update(int pos,int val,int root)
{
int L=tree[root].l,R=tree[root].r;
if(L==R){
tree[root].sum+=val;
tree[root].num+=;
return;
}
int mid=L+R>>;
if(pos<=mid) update(pos,val,root<<);
else update(pos,val,root<<|);
pushup(root);
}
ll query(int pos,int flag,int root)
{
int L=tree[root].l;
int R=tree[root].r;
if(L==R){
if(!flag) return tree[root].num;
else return tree[root].sum;
}
int mid=L+R>>;
ll ans=;
if(pos<=mid) ans+=query(pos,flag,root<<);
else{
if(!flag) ans+=tree[root<<].num;
else ans+=tree[root<<].sum;
ans+=query(pos,flag,root<<|);
}
return ans;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%d",&a[i].x);
}
for(int i=;i<=n;i++){
scanf("%d",&a[i].v);
b[i]=a[i].v;
}
sort(a+,a++n,cmp);
sort(b+,b++n);
int len=unique(b+,b++n)-b-;
ll ans=;
build(,2e5+,);
for(int i=;i<=n;i++){
int v=lower_bound(b+,b++len,a[i].v)-b;
ans+=query(v,,)*a[i].x-query(v,,);
update(v,a[i].x,);
}
printf("%lld\n",ans);
return ; }

F. Moving Points的更多相关文章

  1. F. Moving Points 解析(思維、離散化、BIT、前綴和)

    Codeforce 1311 F. Moving Points 解析(思維.離散化.BIT.前綴和) 今天我們來看看CF1311F 題目連結 題目 略,請直接看原題. 前言 最近寫1900的題目更容易 ...

  2. Codeforces Round #624 (Div. 3) F. Moving Points 题解

    第一次写博客 ,请多指教! 翻了翻前面的题解发现都是用树状数组来做,这里更新一个 线段树+离散化的做法: 其实这道题是没有必要用线段树的,树状数组就能够解决.但是个人感觉把线段树用熟了会比树状数组更有 ...

  3. F - Moving Points树状数组

    题:https://codeforces.com/contest/1311/problem/F 题意:给定x轴上的点以及他们的速度v,只在x轴上运动,求最小的dis之和,注意,这里的时间是可随意的,比 ...

  4. 详细讲解Codeforces Round #624 (Div. 3) F. Moving Points

    题意:给定n个点的初始坐标x和速度v(保证n个点的初始坐标互不相同), d(i,j)是第i个和第j个点之间任意某个时刻的最小距离,求出n个点中任意一对点的d(i,j)的总和. 题解:可以理解,两个点中 ...

  5. HDOJ 4717 The Moving Points

    The Moving Points Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  6. HDU 4717The Moving Points warmup2 1002题(三分)

    The Moving Points Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  7. The Moving Points hdu4717

    The Moving Points Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  8. HDU 4717 The Moving Points (三分)

    The Moving Points Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  9. HDUOJ---The Moving Points

    The Moving Points Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

随机推荐

  1. android 基础学习笔记1

    1.控件 XML种控件必须带有Layoutwidth 和height 1.textview 常用属性 text,textcolor,textsize Android 种颜色用十六进制数表示,共四种形式 ...

  2. Imagine— 让图片再小一点点

    文章选自我的博客:https://blog.ljyngup.com/archives/267.html/ 再次祭出神奇的Github 这次给大家介绍的是一款神奇的图片压缩软件,以质量的微小损失换取大量 ...

  3. 编译生成protobuf的jar包

    编译生成protobuf的jar包 配置maven 安装maven,并修改maven源为阿里云 下载maven wget http://mirror.bit.edu.cn/apache/maven/m ...

  4. Robot Framework自动化测试框架核心指南-如何使用Java编写自定义的RobotFramework Lib

    如何使用Java编写自定义的RobotFramework Lib 本文包括2个章节 1. Robot Frdamwork中如何调用java Lib库 2.使用 java编写自定义的Lib 本文作者为: ...

  5. qt creator源码全方面分析(2-10-3)

    目录 Plugin Meta Data 主键 插件描述键 依赖 可选依赖项 测试依赖项 命令行参数 Test.json示例 插件版本说明 Plugin Meta Data 插件的元数据文件是一个JSO ...

  6. finished with exit code -1073740791 (0xC0000409)解决方案

    1.在用keras框架跑NER的train时,而且只是在用了keras_contrib.layers的CRF时出现问题: 遇到无错跳出finished with exit code -10737407 ...

  7. 上周 GitHub 热点速览 vol.08:系统设计必看 The System Design Primer

    作者:HelloGitHub-小鱼干 摘要:GitHub Trending 上周看点,老项目依旧抢眼,系统设计必看 Repo:The System Design Primer 周获 1k+ star, ...

  8. 目标检测:yolo-v3与faster-rcnn

    一. 算法背景 1. 机器视觉实际应用往往涉及包含多个物体的复杂场景,基于深度卷积神经网络的特征提取器,需要结合其他算法来准确定位多个目标,并进行识别. 2. 工业领域,目标检测算法在安防和质检系统都 ...

  9. toj 3019 Hidden Password (最小表示法)

    Hidden Password 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交: 53 测试通过: 19 描述 Some time the progr ...

  10. 解决egg-mysql连接数据库报错问题

    遇到这个问题,我在网上找了好多资料,最终于解决了!!!★,°:.☆( ̄▽ ̄)/$:.°★ . 我遇到的问题是这样的:链接mysql完全按照官网上做的,但是在yarn dev 时就是一直报错,错误我就不 ...