垃圾poj交不上去

  1. /*
  2. 按权值从小到大排序,
  3. 两个树状数组维护权值小于等于并且在i左边的点的个数和权值
  4. */
  5. #include<iostream>
  6. #include<cstring>
  7. #include<cstdio>
  8. #include<algorithm>
  9. using namespace std;
  10. #define maxn 20005
  11. #define ll long long
  12. struct node{
  13. int w,x;
  14. bool operator<(const node & a)const {
  15. return w<a.w;
  16. }
  17. }a[maxn];
  18. int n;
  19. ll bitcnt[maxn],bittot[maxn],sum;
  20. void add1(int x,int val){//bitcnt
  21. for(int i=x;i<=;i+=i&-i)
  22. bitcnt[i]+=val;
  23. }
  24. void add2(int x,int val){//bittot
  25. for(int i=x;i<=;i+=i&-i)
  26. bittot[i]+=val;
  27. }
  28. ll query1(int x){
  29. ll res=;
  30. for(int i=x;i;i-=i&-i)
  31. res+=bitcnt[i];
  32. return res;
  33. }
  34. ll query2(int x){
  35. ll res=;
  36. for(int i=x;i;i-=i&-i)
  37. res+=bittot[i];
  38. return res;
  39. }
  40.  
  41. int main(){
  42. while(scanf("%d",&n)==){
  43. memset(bitcnt,,sizeof bitcnt);
  44. memset(bittot,,sizeof bittot);
  45. sum=;
  46.  
  47. for(int i=;i<n;i++) scanf("%d%d",&a[i].w,&a[i].x);
  48. sort(a,a+n);
  49.  
  50. ll ans=;
  51. for(int i=;i<n;i++){
  52. ll left_node=query1(a[i].x);
  53. ll left_total=query2(a[i].x);
  54.  
  55. ans+=a[i].w*(left_node*a[i].x-left_total);
  56. ans+=a[i].w*((sum-left_total-(i-left_node)*a[i].x));
  57. sum+=a[i].x;
  58. add1(a[i].x,);
  59. add2(a[i].x,a[i].x);
  60. }
  61. printf("%lld\n",ans);
  62. }
  63. return ;
  64. }

poj1990两个树状数组的更多相关文章

  1. POJ-1990 MooFest---两个树状数组

    题目链接: https://vjudge.net/problem/POJ-1990 题目大意: 一群牛参加完牛的节日后都有了不同程度的耳聋,第i头牛听见别人的讲话,别人的音量必须大于v[i],当两头牛 ...

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

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

  3. hdu3015,poj1990树状数组

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3015 题意:给定n组数,每组数有值x和值h,求n组数两两的val的总和.将所有x和所有h分别离散化(不 ...

  4. poj1990树状数组

    Every year, Farmer John's N (1 <= N <= 20,000) cows attend "MooFest",a social gather ...

  5. hdu3015树状数组 poj1990的离散化版本

    都是一类题目,推导调试比较烦,想出来还是不难的 /* 给定n个点对,按一维升序排序一次,每个点的序号为Di,按二维升序排序一次,每个点的序号为Hi 求sum{w(i,j)} w(i,j)=abs(Di ...

  6. Inversion_树状数组***

    Problem Description You have a sequence {a1,a2,...,an} and you can delete a contiguous subsequence o ...

  7. HDU5792 World is Exploding(树状数组)

    一共6种情况,a < b且Aa < Ab, c < d 且Ac > Ad,这两种情况数量相乘,再减去a = c, a = d, b = c, b = d这四种情况,使用树状数组 ...

  8. POJ 1990 MooFest(树状数组)

                                                                        MooFest Time Limit: 1000MS   Mem ...

  9. hdu-5497 Inversion(滑动窗口+树状数组)

    题目链接: Inversion Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

随机推荐

  1. the difference __str__ and __repr__

    First, let me reiterate the main points in Alex’s post: The default implementation is useless (it’s ...

  2. Mysql忘记数据库密码以及用户授权案例展示

    Mysql忘记数据库密码以及用户授权案例展示 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 大家在学习MySQL时如果很长一段时间不使用密码是不是就忘记MySQL的管理密码啦?这种 ...

  3. Java IO笔记

    第一:File类(主要获取文件名,判断文件是否存在,创建或者删除文件) 举个例子,代码如下: import java.io.File; public class Main{ public static ...

  4. PostgreSQL操作-psql基本命令

    一.建立数据库连接----------------接入PostgreSQL数据库: psql -h IP地址 -p 端口 -U 数据库名 之后会要求输入数据库密码 二.访问数据库 1.列举数据库:\l ...

  5. JDBC-通用查询

    手动实现查询结果返回为一个对象集合 实体类 package com.jdbc; public class User { private Integer id; private String name; ...

  6. Nginx 学习笔记(三)proxy_cache 缓存配置和ngx_cache_purge模块

    反向代理的缓存清理 一.proxy_cache配置 (1)如何配置和安装,都在这里了:https://github.com/Tinywan/Lua-Nginx-Redis/blob/master/Ng ...

  7. jQuery基础 (一)——样式篇(jQuery选择器)

    一.选择器类型 id选择器 class选择器 元素选择器 层级选择器 全选择器(*选择器) 二.有几种方式可以隐藏一个元素: CSS display的值是none. type="hidden ...

  8. 使用paramiko远程执行命令、下发文件

    写部署脚本时,难免涉及到一些远程执行命令或者传输文件. 之前一直使用sh库,调用sh.ssh远程执行一些命令,sh.scp传输文件,但是实际使用中还是比较麻烦的,光是模拟用户登陆这一点,还需要单独定义 ...

  9. 转--python之正则入门

    原文地址 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法 ...

  10. HTML语义化

    什么是HTML语义化呢? 根据内容的结构化(内容语义化),选择合适的标签(代码语义化),便于开发者阅读,写出优雅的代码的同时让浏览器的爬虫更好的解析 语义化标签的优势: 1)代码结构清晰,方便阅读 2 ...