E - LEQ
题意:给一个数组,找出有多少子序列 满足a1<ak
思路:易知,对于一对数 ai<aj 子序列的数量为2(j-i-1) 即 2j-1/2i 若ai<aj<ak, ak的贡献为 2k-1(1/2i+1/2j)
则可以用树状数组维护比ak小的 (1/2i+1/2j+…………)的和 。
之后离散化一下就行了。

#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
#include<bits/stdc++.h>
#define int long long
#define fi first
#define se second
#define pii pair<int,int>
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
const int inf=2e18+100;
const int maxn=3e5+100;
const int mod=998244353;
int a[maxn],c[maxn];
int n,mx;
int qpow(int a,int b)
{int ans=1;while(b){if(b&1)ans=ans*a%mod;a=a*a%mod;b=b>>1;}return ans%mod;
}
int lowbit(int x)
{return x&(-x);
}
void update(int x,int val)
{while(x<=mx){c[x]=(c[x]+val)%mod;x+=lowbit(x);}
}
int ask(int x)
{int ans=0;while(x){ans=(ans+c[x])%mod;x-=lowbit(x);}return ans%mod;
}
signed main()
{map<int,int>mp;cin>>n;for(int i=1;i<=n;i++){cin>>a[i];mp[a[i]]=1;}for(auto it:mp){mp[it.fi]=++mx;}int ans=0;for(int i=1;i<=n;i++){ans=(ans+qpow(2,i-1)*ask(mp[a[i]])%mod)%mod;int tp=qpow(2,i);update(mp[a[i]],qpow(tp,mod-2)%mod);}cout<<ans<<"\n";
}

E - LEQ(树状数组)相关推荐

  1. CDQ分治 + 树状数组 ---- C. Goodbye Souvenir(三维偏序+思维)

    题目链接 题目大意: 给定长度为nnn的数组, 定义数字XXX在[l,r][l,r][l,r]内的值为数字XXX在[l,r][l,r][l,r]内最后一次出现位置的下标减去第一次出现位置的下标 给定m ...

  2. Luogu P4178 Tree (点分治 + 树状数组)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P4178 Prob ...

  3. 洛谷P3688/uoj#291. [ZJOI2017]树状数组

    传送门(uoj) 传送门(洛谷) 这里是题解以及我的卡常数历程 话说后面那几组数据莫不是lxl出的这么毒 首先不难发现这个东西把查询前缀和变成了查询后缀和,结果就是查了\([l-1,r-1]\)的区间 ...

  4. BZOJ.4888.[TJOI2017]异或和(树状数组)

    BZOJ 洛谷 \(Description\) 求所有区间和的异或和. \(n\leq 10^5,\ \sum a_i\leq 10^6\). \(Solution\) 这样的题还是要先考虑按位做. ...

  5. CF452F Permutations/Luogu2757 等差子序列 树状数组、Hash

    传送门--Luogu 传送门--Codeforces 如果存在长度\(>3\)的等差子序列,那么一定存在长度\(=3\)的等差子序列,所以我们只需要找长度为\(3\)的等差子序列.可以枚举等差子 ...

  6. 【XSY2111】Chef and Churus 分块 树状数组

    题目描述 有一个长度为\(n\)的数组\(A\)和\(n\)个区间\([l_i,r_i]\),有\(q\)次操作: \(1~x~y\):把\(a_x\)改成\(y\) \(2~x~y\):求第\(l\ ...

  7. 【Ynoi2011】成都七中【树论】【点分树】【离线】【树状数组】

    题意:给一棵树,点有颜色,qqq 次询问,每次给定 l,r,xl,r,xl,r,x ,求只保留编号在 [l,r][l,r][l,r] 中的点时点 xxx 所在连通块的颜色数. 所有数 ≤105\leq ...

  8. 【HNOI2015】接水果【整体二分】【DFS序】【双区间转矩形】【扫描线】【树状数组】

    传送门 题意:给定一个nnn个点的树,定义一个"盘子"为一个给定权值的路径,一个"水果"为一条路径,一个盘子可以接到水果当且仅当盘子的路径是水果的子路径.给出所 ...

  9. 【CF1194E】Count The Rectangles【类扫描线】【单调性】【树状数组】

    传送门 题意:给定NNN条与坐标轴平行的线段,保证不垂直的线段没有交点,求一共构成多少个矩形(以线段交点为顶点). 1≤N≤50001\leq N\leq50001≤N≤5000 显然是个数据结构乱搞 ...

最新文章

  1. android自定义控件绘制位置,Android自定义控件之——文字圆形边框(将文字绘制在圆中间)...
  2. jq实现文字个数限制_Android实现类似钉钉水印背景功能
  3. python网络爬虫与信息提取北京理工大学_Python网络爬虫与信息提取(一)
  4. Invitation Cards POJ - 1511 SPFA(dijkstra+反向建图+邻接表(下标过大)+输入输出用stdio(iostream超时))
  5. c语言函数能改变指针吗,如何修改传递给C中函数的指针?
  6. GARFIELD@11-11-2004
  7. 微信小程序demo2
  8. python 内置运算
  9. JMeter基础之组件的作用域与执行顺序
  10. 斯坦福大学博士后王鸿伟: 知识图谱辅助的个性化推荐系统
  11. session过期问题
  12. hdu I Hate It
  13. sai教程初识SAI + 城堡绘画教程
  14. 如何卸载快压病毒流氓软件--不停自动下载安装App
  15. 如何阅读文献 Three-pass 法
  16. 幸存者偏差——讨论死在中国游戏圈的一百万种方式
  17. EXCEL怎么批量在两字姓名中间加空格
  18. 骑士旅行问题的试探性算法研究
  19. GOE:Nintendo Switch™ 对战忍者口香糖动作游戏 『Ninjala』决定于2020年6月25日发售
  20. [洛谷]P1220 关路灯 (#区间dp)

热门文章

  1. make clean与make distclean的区别
  2. win10删除.x文件的在“你要如何打开这个文件”的某个无效应用
  3. UVA - 1471 Defense Lines 贪心+二分
  4. 图片马 php 菜刀,图片马的制作以及菜刀的使用
  5. c语言存储类型关键字作用,c语言学习笔记.关键字.存储类型关键字等
  6. android 权限模型,android-棉花糖权限模型在Airbnb中的AccountManager getAccounts()异常,该怎么做?...
  7. 全球与中国菱镁矿和水镁石市场现状及未来发展趋势
  8. 为什么新疆人吃的羊肉膻味那么重?
  9. 100度享乐电商网 jQuery
  10. 2022鹏城杯web