随笔分类 -  题解-树状数组

摘要:前言 【题目传送门】 小清新题目,很放松身心。 用时:\(20min\) 题解 树状数组 逆序对先想到树状数组。 大概想一想,发现从子树向父亲回溯的过程也满足逆序对的加入顺序关系。 再想想,发现不同子树内的点这样统计会出错,因为每个点只和子树内的点产生的逆序对有关。 也不难解决,进入这个点之前算一遍 阅读全文
posted @ 2021-11-18 10:13 conprour 阅读(85) 评论(0) 推荐(0)
摘要:前言 【题目传送门】 个人一直觉得用两个树状数组/线段树维护信息的题都很巧妙(因为我想不到),这题正好就是。 而且本身也有一点思维含量。 题解 先从冒泡排序的那个询问入手,考虑一轮排序过后有什么影响。 直观感受是每一个大值会一路往后走,直到遇到更大的值,而且每一轮都至少排好一个数。但是感觉这都没太大 阅读全文
posted @ 2021-11-07 15:42 conprour 阅读(96) 评论(0) 推荐(0)
摘要:前言 【题目传送门】 难度:上蓝有余,上紫不足。 做题用时:\(1h\ 45min\)。(还因为一个符号写反的下饭问题调了一会) 一开始没有看到数字两两不同的限制条件,直接 gg 了,看了题解。 感觉不是特别难,但是也有点绕,主要是排序的东西太多了。 题解 首先根据数字从小到大排序,就能找到每一个数 阅读全文
posted @ 2021-11-04 23:47 conprour 阅读(144) 评论(0) 推荐(0)
摘要:题解 逆序对板子,关键在于“把序列 \(a_i\) 根据 \(b_i\) 排序”的操作。 相当于把 \(a_i\) 序列对应成 \(1,2,3,4,5...\) 把 \(b_i\) 序列按照相同的对应法则对应成新的序列,这样这个序列就相当于要排列回 \(1,2,3,4,5...\),于是就是求逆序对 阅读全文
posted @ 2021-11-04 20:24 conprour 阅读(54) 评论(0) 推荐(0)
摘要:前置其他好的博客链接:胡小兔‘s blog 洛谷传送门:上帝造题的七分钟 分析 这里主要想讨论怎么设定出这个二维差分数组的 前置知识:差分数组是前缀和的逆运算,其意义就在于差分数组的前缀和等于对应位置的元素数值 回顾一维前缀和和差分数组: sum[i]=sum[i-1]+a[i]; d[i]=a[i 阅读全文
posted @ 2021-07-26 16:01 conprour 阅读(181) 评论(0) 推荐(0)
摘要:题意 解析 代码 #include<bits/stdc++.h> using namespace std; #define ll long long const int INF = 0x3f3f3f3f,N = 1e6+10; ll c[2][N]; int n,q; int tmp; void u 阅读全文
posted @ 2021-07-26 10:36 conprour 阅读(66) 评论(0) 推荐(0)