poj 1990(树状数组,另外,注意数据类型,必须是long long不能是int)
时间:2021-08-10
本文章向大家介绍poj 1990(树状数组,另外,注意数据类型,必须是long long不能是int),主要包括poj 1990(树状数组,另外,注意数据类型,必须是long long不能是int)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; #define ll long long const ll maxn = 20005; typedef pair<ll,ll> PII; ll nn; PII a[maxn]; ll num[maxn],sum[maxn]; int lowbit(ll i){ return i&(-i); } void upDate(ll*x,ll i,ll val){ while(i<=nn){ x[i] += val; i += lowbit(i); } } ll getSum(ll*x,ll i){ ll s = 0; while(i>0){ s += x[i]; i -= lowbit(i); } return s; } int main(){ ll n,i,j,total,ans; ll nm,sm,small,big,val; while(scanf("%lld",&n)!=EOF){ memset(sum,0,sizeof sum); memset(num,0,sizeof num); nn = -1; for(i=0;i<n;i++){ scanf("%lld%lld",&a[i].first,&a[i].second); nn = max(nn,a[i].second); } sort(a,a+n); total = 0; ans = 0; for(i=0;i<n;i++){ nm = getSum(num,a[i].second); sm = getSum(sum,a[i].second); small = nm*a[i].second-sm; big = total-sm-(i-nm)*a[i].second; ans += (small+big)*a[i].first; total += a[i].second; upDate(num,a[i].second,1); upDate(sum,a[i].second,a[i].second); } printf("%lld\n",ans); } return 0; }
原文地址:https://www.cnblogs.com/stevenzrx/p/15123096.html
- python中列表的sort方法使用详解
- 深度学习2017成果展
- Python正则表达式中的re.S的作用
- 图片转文字居然这么简单,多亏了这几个神器!
- 三、请求库之requests模块
- 升级 微信技术输出 时尚新门店尝鲜刷脸支付
- WSP Global品牌升级 启用3声母域名
- 一、爬虫基本原理
- python 中__setattr__, __getattr__,__getattribute__, __call__使用方法
- 量子技术与人工智能:同时进化的双生子
- TCP协议三次握手与四次挥手通俗解析
- Silverlight/aspx/ajax/mvc的UI自动化测试
- Office Open XML学习(1)-创建excel文档,并向单元格中插入字符串
- PyMC3和Theano代码构建贝叶斯深度网络,61页PPT探索贝叶斯深度学习以及实现
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 数据结构与算法(二)——十大排序算法
- VUE项目使用.env文件配置全局环境变量
- 设计模式学习(六)-抽象工厂模式
- 彻底完美解决安卓苹果手机点击输入框网页页面自动放大缩小
- 第22天:NLP实战(六)——基于PaddleHub的疫情期间网民情绪识别
- Echarts大数据可视化物流航向省份流向迁徙动态图,开发全解+完美参数注释
- Linux 常用操作以及概念
- GCD梳理与总结——封装
- 原生JS在网页上复制的所有文字后面自动加上一段版权声明
- 使用宝塔docker安装为知笔记私有部署
- 第4天:美团点评2020校招测试方向笔试试卷分析
- Element-UI饿了么时间组件控件按月份周日期,开始时间结束时间范围限制参数
- 微信小程序flex布局
- 细数 TS 中那些奇怪的符号
- 安装RabbitMQ无法访问localhost:15672的管理界面解决