正题

题目链接:http://contest-hunter.org:83/contest/0x40%E3%80%8C%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E8%BF%9B%E9%98%B6%E3%80%8D%E4%BE%8B%E9%A2%98/4201%20%E6%A5%BC%E5%85%B0%E5%9B%BE%E8%85%BE


题目大意

给若干个点,求可以得到/\和V的形状各多少个。


解题思路

我们可以用树状数组求逆序对的方法求出一个点左边 小于/大于 和右边 小于/大于 的数量各多少个,然后乘一下就好了。


code

#include<cstdio>
#include<algorithm>
#include<cstring>
#define lobit(x) x&-x
using namespace std;
int t[200011],n,x;
long long ans1,ans2;
void add(int x,int num)
{while(x<=n){t[x]+=num;x+=lobit(x);}
}
int ask(int x)
{int sum=0;while(x>0){sum+=t[x];x-=lobit(x);}return sum;
}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&x);int k=ask(x-1);ans1+=(long long)(i-k-1)*(n-i-x+k+1);//求以i为中心的/\ans2+=(long long)k*(x-1-k);//求以i为中心的Vadd(x,1);}printf("%lld %lld",ans1,ans2);
}

Ch4201-楼兰图腾【树状数组】相关推荐

  1. 楼兰图腾(树状数组)

    题目描述: 思路: 题目字很多,但是题意并不难懂,其实我们就是要找当前数前面和后面分别有多少数大于或小于当前数字,然后再将找到的两个数量相乘就是当前数字能组成的图腾数量. 例如: 1 2 3 1 2 ...

  2. acwing-241. 楼兰图腾-树状数组板子题+开脑洞

    原题链接 题意:给你一组数,让你找出所有aiak的个数与ai>aj<ak的个数. 思路: 看到这个题瞬间想到了三层的暴力(暴力破万物),但是n是200000,跑三层服务器会跑吐的,必然超时 ...

  3. 0x42.数据结构进阶 - 树状数组

    目录 一.树状数组与逆序对 A.luogu P1908 逆序对(模板题) B.AcWing 241. 楼兰图腾 树状数组的拓展应用 1.区间加,求单点值 A.AcWing 242. 一个简单的整数问题 ...

  4. AcWing 241 楼兰图腾(树状数组详解)

    树状数组 问题引入 树状数组是一种实现起来比较简单的高级数据结构. 我们知道,对于一个数组a[i],其前缀和s[i]表示a数组里面前i个元素之和,而求区间l到r的元素之和可以用s[r] - s[l-1 ...

  5. 高级数据结构1—初识树状数组—快速求得前缀和和修改某一元素值

    - 本人的LeetCode账号:魔术师的徒弟,欢迎关注获取每日一题题解,快来一起刷题呀~ 本人Gitee账号:路由器,欢迎关注获取博客内容源码.   树状数组和其他的高级数据结构不同,它非常的好写,同 ...

  6. 树状数组(求子区间和+更新元素值)

    树状数组 欲完成修改值和查询区间和两种操作 求前缀和的做法时间复杂度为O(n)O(n)O(n) 使用树状数组时间复杂度降为O(logn)O(logn)O(logn) lowbit 1.x&(- ...

  7. 7.25 树状数组的简单应用题

    首先我们都了解过树状数组这一短小精悍的利器,知道它和差分以及推公式的简单结合.但很显然问题不会那么裸. 下面我们将讨论两道关于树状数组的简单应用题,看看具体包装下的树状数组题目 一.   楼兰图腾  ...

  8. 20220725树状数组入门反思

    最近学习了树状数组和线段树,图论一点点啃吧,然后首先介绍一下树状数组的原理: 借用acwing一老哥的题解了. 树状数组的本质思想是使用树结构维护"前缀和",从而把时间复杂度降为O ...

  9. 树型结构——树状数组

    目录 1.树状数组的引入 2.基本操作:主要包括 插入操作,查询操作. 3.具体实现: 例题:1.楼兰图腾 241. 楼兰图腾 2.一个简单的整数问题 3.一个简单的整数问题2 1.树状数组的引入 树 ...

最新文章

  1. PHP做好友关系系统,php社交好友网站
  2. 怎样导入python colorama模块_使用git子模块导入python项目
  3. 【Java基本功】一文读懂String及其包装类的实现原理
  4. 自定义JWT认证过滤器
  5. Dubbo之RPC架构
  6. ref绑定dom的三种写法
  7. SQLServer判断循环
  8. Docker中快速安装Mysql
  9. iOS网络开发(5)请求的缓存
  10. 华为hs8145v5如何改桥接_Linksys VelopAX5300和AC3900套装 Mesh组网实战 - 桥接
  11. [Errno 256] No more mirrors to try.
  12. 芯片AD库导入(贸泽)
  13. yoga14s amd r7-4800h虚拟机安装黑苹果记录
  14. bootstrap-select 的多选+模糊查询下拉框详解
  15. 顶点计划:关于大学生自习的调研
  16. R语言—Shiny框架
  17. VSCode配置JavaScript基于Node.js环境
  18. 相似度的几种常见计算方法
  19. python租房_如何用Python爬租房网站信息
  20. Vultr VPS开放HTTP端口

热门文章

  1. java调试案例_Spring-boot的debug调试代码实例
  2. html设置样式不继承_web前端入门到实战:css的核心原理分为优先级原则与继承原则两大部分...
  3. 调整png的不透明度_TGA与PNG的优劣对比
  4. 后端学习 - SpringMVC
  5. 软件构造学习笔记-实验2
  6. 二叉树的几道相似简单递归题
  7. [C++11]initializer_lisr模板类的使用
  8. C++vector容器-插入和删除
  9. 无法载入增效工具_山东省 智能工具箱 智能工具管理 工具管理企业数字化管理...
  10. python标准库time_Python 标准库之时间篇