文章分类 - 数据结构——树状数组
摘要:"传送门" Solution: 我们只需要采用和树链剖分近似的思想——把整个树的dfs序整理出来,排成线型。 这样一个节点的子树肯定是连续的一段,于是乎就可以用树状数组维护单点修改+区间查询的任务了。 cpp include include define N 100005 using namespa
阅读全文
摘要:"传送门" 就是一个二维树状数组单点修改+区间查询的模板题,代码特别好实现,可以来练练手。 cpp include include include using namespace std; int trash,n,tree[1050][1050]; inline int lowbit(int x)
阅读全文
摘要:"传送门" 就是stars的变式。 把e,s当成一个点的横坐标,纵坐标后,经过画图会发现,所要求的点,其实就是一个点的左上方。 按y从大到下排序,然后树状数组维护一下类似桶的东西即可。 cpp include include include include using namespace std;
阅读全文
摘要:" 传送门 " Solution: 由于数字的大小可能非常大,而且都是未知的,所以只能采用离散化的方式先将数组离散化。 每次把这个数的位置加入到树状数组中,因为是排完序之后,所以之前加入的一定比后加入的大 然后再查询当前这个数前面位置的数。 cpp include define N 40005 us
阅读全文
摘要:" 传送门 " 由于输出中的y还是单调递增,甚至还不用排序了。 我们用树状数组维护一个类似桶的东西即可,在update,注意是i=x;i include include using namespace std; int n,tree[32015],level[32015]; inline int l
阅读全文

浙公网安备 33010602011771号