垃圾poj交不上去

/*
按权值从小到大排序,
两个树状数组维护权值小于等于并且在i左边的点的个数和权值
*/
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
#define maxn 20005
#define ll long long
struct node{int w,x;bool operator<(const node & a)const {return w<a.w;}
}a[maxn];
int n;
ll bitcnt[maxn],bittot[maxn],sum;
void add1(int x,int val){//bitcntfor(int i=x;i<=20001;i+=i&-i)bitcnt[i]+=val;
}
void add2(int x,int val){//bittotfor(int i=x;i<=20001;i+=i&-i)bittot[i]+=val;
}
ll query1(int x){ll res=0;for(int i=x;i;i-=i&-i)res+=bitcnt[i];return res;
}
ll query2(int x){ll res=0;for(int i=x;i;i-=i&-i)res+=bittot[i];return res;
}    int main(){while(scanf("%d",&n)==1){memset(bitcnt,0,sizeof bitcnt);memset(bittot,0,sizeof bittot);sum=0;for(int i=0;i<n;i++) scanf("%d%d",&a[i].w,&a[i].x);sort(a,a+n);ll ans=0;for(int i=0;i<n;i++){ll left_node=query1(a[i].x);ll left_total=query2(a[i].x);ans+=a[i].w*(left_node*a[i].x-left_total);ans+=a[i].w*((sum-left_total-(i-left_node)*a[i].x));sum+=a[i].x;add1(a[i].x,1);add2(a[i].x,a[i].x);}printf("%lld\n",ans);}    return 0;
}        

转载于:https://www.cnblogs.com/zsben991126/p/10090808.html

poj1990两个树状数组相关推荐

  1. poi 1990 MooFest(树状数组题目,转换成两个树状数组来做)较难的题目****

    1.http://poj.org/problem?id=1990 2.题目大意: 题意:FJ有n头牛,排列成一条直线(不会在同一个点),给出每头牛在直线上的坐标x.另外,每头牛还有一个自己的声调w,如 ...

  2. hdu-3015 Disharmony Trees---离散化+两个树状数组

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3015 题目大意: 有一些树,这些树的高度和位置给出.现在高度和位置都按从小到大排序,对应一个新的ra ...

  3. 数据结构一【树状数组】普通、二维、离线树状数组的(单点修改,单点查询,区间修改,区间查询)模板及应用例题总结

    文章目录 树状数组 lowbit 线段树与树状数组 单点修改 区间查询 区间修改 区间求和 二维树状数组 离线树状数组 例题 POJ:stars MooFest [SDOI2009]HH的项链 Tur ...

  4. 二维树状数组 ---- codeforces341D

    题目链接 题目大意:给你一个矩阵初始值全是0 现在有两个操作: 1.询问(x0,y0)到(x1,y1)这个矩阵内部的异或和1.询问(x0,y0) 到 (x1,y1)这个矩阵内部的异或和1.询问(x0, ...

  5. CodeForces 396C 树状数组 + DFS

    本主题开始看到以为段树或树状数组,但是,对于一个节点的有疑问的所有子节点的加权,这一条件被视为树的根,像 然后1号是肯定在第一层中,然后建立一个单向侧倒查,然后记录下来 其中每个节点 层,终于 两个节 ...

  6. CodeForces 390E Inna and Large Sweet Matrix(树状数组改段求段)

    CodeForces 390E Inna and Large Sweet Matrix(树状数组改段求段) 树状数组仅仅能实现线段树区间改动和区间查询的功能,能够取代不须要lazy tag的线段树.且 ...

  7. hdu 5497 Inversion(树状数组)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5497 解题思路: 用树状数组维护一段区间L,区间长度为m,依次枚举该区间的终点ai,即将该点加入到区间 ...

  8. poj2464扫描线好题,树状数组解法

    用树状数组解比线段树快了好多,难度也下降许多 分别用两个树状数组维护当前扫描线左侧和右侧的点,离散化y轴即可 #include<iostream> #include<cstring& ...

  9. 蓝桥杯2014届试题9题 小朋友排队(树状数组+类逆序对)

    题目: 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 n 个小朋友站成一排.现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友. 每个小朋友都有一个不高兴的 ...

  10. Wannafly挑战赛10F-小H和遗迹【Trie,树状数组】

    正题 题目链接:https://ac.nowcoder.com/acm/contest/72/F 题目大意 nnn个字符串,包括小写字母和#\##.其中#\##可以替换为任意字符串.求有多少对字符串可 ...

最新文章

  1. Spring注解@Value
  2. python爬网页源码_python爬虫爬取网页的内容和网页源码不同?
  3. 每天一个linux命令(31): /etc/group文件详解
  4. java类如何enum_java – 如何模拟ENUM类中的方法?
  5. 插入最快mysql8.0_MySQL8.0大表秒加字段,是真的吗?
  6. 【数据结构与算法】【算法思想】 A *搜索算法
  7. Docker这么香,为啥还要K8S?
  8. 12306加密传输_前沿一键发送“文图音视频” 支持加密传输、图形密码、保护用户隐私……5G消息要来了!...
  9. logback日志pattern_[SpringBoot2.X]28- Spring Boot 的日志管理
  10. poi 5.2.2 操作word合集之【页眉页脚】
  11. DAC数模转换/ADC模数转换
  12. python练手经典100例项目-Python 的练手项目有哪些值得推荐?
  13. photoshop批处理改变图片大小
  14. k8s资源限制——资源的配额管理(Resource Quotas)
  15. 大蟒蛇python编译器_python蟒蛇绘制
  16. CDEC中国数字智能生态大会参会指南
  17. openssl与证书机制
  18. WEB引入Google思源黑体
  19. 【Tensorflow 2.0 正式版教程】tf.data.Dataset的基本使用方法
  20. Web前端是自学好还是培训好?

热门文章

  1. Cython应用手记
  2. latex 行内公式
  3. Hyperledger Fabric教程(4)-- byfn.sh分析-docker-compose-cli.yaml
  4. html+css响应式布局
  5. mysql新手创建数据库_用MySQL创建数据库和数据库表(新手必看)
  6. mysql中chr_MySQL常见函数
  7. 基于SSM的停车位收费系统
  8. mysqld是服务,mysql是客户端
  9. js Date 日期函数
  10. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_01-页面静态化需求分析