poj1990两个树状数组
垃圾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两个树状数组相关推荐
- poi 1990 MooFest(树状数组题目,转换成两个树状数组来做)较难的题目****
1.http://poj.org/problem?id=1990 2.题目大意: 题意:FJ有n头牛,排列成一条直线(不会在同一个点),给出每头牛在直线上的坐标x.另外,每头牛还有一个自己的声调w,如 ...
- hdu-3015 Disharmony Trees---离散化+两个树状数组
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3015 题目大意: 有一些树,这些树的高度和位置给出.现在高度和位置都按从小到大排序,对应一个新的ra ...
- 数据结构一【树状数组】普通、二维、离线树状数组的(单点修改,单点查询,区间修改,区间查询)模板及应用例题总结
文章目录 树状数组 lowbit 线段树与树状数组 单点修改 区间查询 区间修改 区间求和 二维树状数组 离线树状数组 例题 POJ:stars MooFest [SDOI2009]HH的项链 Tur ...
- 二维树状数组 ---- codeforces341D
题目链接 题目大意:给你一个矩阵初始值全是0 现在有两个操作: 1.询问(x0,y0)到(x1,y1)这个矩阵内部的异或和1.询问(x0,y0) 到 (x1,y1)这个矩阵内部的异或和1.询问(x0, ...
- CodeForces 396C 树状数组 + DFS
本主题开始看到以为段树或树状数组,但是,对于一个节点的有疑问的所有子节点的加权,这一条件被视为树的根,像 然后1号是肯定在第一层中,然后建立一个单向侧倒查,然后记录下来 其中每个节点 层,终于 两个节 ...
- CodeForces 390E Inna and Large Sweet Matrix(树状数组改段求段)
CodeForces 390E Inna and Large Sweet Matrix(树状数组改段求段) 树状数组仅仅能实现线段树区间改动和区间查询的功能,能够取代不须要lazy tag的线段树.且 ...
- hdu 5497 Inversion(树状数组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5497 解题思路: 用树状数组维护一段区间L,区间长度为m,依次枚举该区间的终点ai,即将该点加入到区间 ...
- poj2464扫描线好题,树状数组解法
用树状数组解比线段树快了好多,难度也下降许多 分别用两个树状数组维护当前扫描线左侧和右侧的点,离散化y轴即可 #include<iostream> #include<cstring& ...
- 蓝桥杯2014届试题9题 小朋友排队(树状数组+类逆序对)
题目: 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 n 个小朋友站成一排.现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友. 每个小朋友都有一个不高兴的 ...
- Wannafly挑战赛10F-小H和遗迹【Trie,树状数组】
正题 题目链接:https://ac.nowcoder.com/acm/contest/72/F 题目大意 nnn个字符串,包括小写字母和#\##.其中#\##可以替换为任意字符串.求有多少对字符串可 ...
最新文章
- Spring注解@Value
- python爬网页源码_python爬虫爬取网页的内容和网页源码不同?
- 每天一个linux命令(31): /etc/group文件详解
- java类如何enum_java – 如何模拟ENUM类中的方法?
- 插入最快mysql8.0_MySQL8.0大表秒加字段,是真的吗?
- 【数据结构与算法】【算法思想】 A *搜索算法
- Docker这么香,为啥还要K8S?
- 12306加密传输_前沿一键发送“文图音视频” 支持加密传输、图形密码、保护用户隐私……5G消息要来了!...
- logback日志pattern_[SpringBoot2.X]28- Spring Boot 的日志管理
- poi 5.2.2 操作word合集之【页眉页脚】
- DAC数模转换/ADC模数转换
- python练手经典100例项目-Python 的练手项目有哪些值得推荐?
- photoshop批处理改变图片大小
- k8s资源限制——资源的配额管理(Resource Quotas)
- 大蟒蛇python编译器_python蟒蛇绘制
- CDEC中国数字智能生态大会参会指南
- openssl与证书机制
- WEB引入Google思源黑体
- 【Tensorflow 2.0 正式版教程】tf.data.Dataset的基本使用方法
- Web前端是自学好还是培训好?
热门文章
- Cython应用手记
- latex 行内公式
- Hyperledger Fabric教程(4)-- byfn.sh分析-docker-compose-cli.yaml
- html+css响应式布局
- mysql新手创建数据库_用MySQL创建数据库和数据库表(新手必看)
- mysql中chr_MySQL常见函数
- 基于SSM的停车位收费系统
- mysqld是服务,mysql是客户端
- js Date 日期函数
- 阶段5 3.微服务项目【学成在线】_day04 页面静态化_01-页面静态化需求分析