随笔分类 - 数据结构 - 树状数组
摘要:我这份代码已经奇怪到一定程度了~ 洛谷上一直 $TLE$,但是本地造了几个数据都过了. 简单说一下题解: 先建出来点分树. 对于每一个询问,在点分树中尽可能向上跳祖先,看是否能够处理这个询问. 找到最高点的好处就是该点的询问可以全部由那个祖先来统计. 因为祖先到 $x$ 是合法的,而那个祖先会统计子
阅读全文
摘要:Description 给出两个长度相同且由大写英文字母组成的字符串A、B,保证A和B中每种字母出现的次数相同。 现在每次可以交换A中相邻两个字符,求最少需要交换多少次可以使得A变成B。 给出两个长度相同且由大写英文字母组成的字符串A、B,保证A和B中每种字母出现的次数相同。 现在每次可以交换A中相
阅读全文
摘要:Description 给您一颗树,每个节点有个初始值。 现在支持以下两种操作: 1. C i x(0<=x<2^31) 表示将i节点的值改为x。 2. Q i j x(0<=x<2^31) 表示询问i节点到j节点的路径上有多少个值为x的节点。 给您一颗树,每个节点有个初始值。 现在支持以下两种操作
阅读全文
摘要:Description 一个叫做立方体大作战的游戏风靡整个Byteotia。这个游戏的规则是相当复杂的,所以我们只介绍他的简单规 则:给定玩家一个有2n个元素的栈,元素一个叠一个地放置。这些元素拥有n个不同的编号,每个编号正好有两个 元素。玩家每次可以交换两个相邻的元素。如果在交换之后,两个相邻的元
阅读全文
摘要:Description 给定长度为2N的序列,1~N各处现过2次,i第一次出现位置记为ai,第二次记为bi,求满足ai<aj<bi<bj的对数 给定长度为2N的序列,1~N各处现过2次,i第一次出现位置记为ai,第二次记为bi,求满足ai<aj<bi<bj的对数 题解: 方法一: 搞一个KDtree
阅读全文
摘要:由于有重复数字,我们以一个序列为基准,另一个序列以第一个序列每个数所在下标为这个序列每个数对应的值. 注意的是,拆值的时候按照在第一个序列中的位置从大到小排,强制只能选一个. 最后跑一边最长上升子序列即为答案 Code:
阅读全文
摘要:Code:
阅读全文
摘要:Code:
阅读全文
摘要:#include #include #include #include #include #include #define REP(i,a,n)for(int i=a;i0){ sum+=C[o][pos]; pos-=lowbit(pos); } return sum; } void Modify...
阅读全文
摘要:Code:#include#include#include#includeusing namespace std;const int maxn = 100000 + 233;int n, C[maxn], height[maxn];stackS;inline...
阅读全文
摘要:首先,我们不难发现N个位置都选一定不会比少选任意几个差,所以我们就先设定我们将这N个修改机会都用上, 那么如果点 i">ii 前有sumv">sumvsumv个可修改点要被选的话,当前点被选择的条件是减掉sumv">sumvsumv后依然能和前面已减掉过su...
阅读全文
摘要:#include#includeusing namespace std;const int N=100000+3;int x[N], y[N], Y[N], A[N], nums[N];int C[N];int cmp(int i,int j){ if...
阅读全文
摘要:#include#include#includeusing namespace std;const int N=250000+6;int C[N0)tmp+=C[t],t-=lowbit(t); return tmp;}void dfs(int u,i...
阅读全文
摘要:#include#include#includeusing namespace std;const int N=2000000+9;int C[N],flower[N],pre[N],head[N];int A[N],l[N],r[N],ans[N];int...
阅读全文
摘要:比较友好的数据结构题 建议读者好好思考思考……. 可以分析出与前缀和的关系, 之后就愉快的套起树状数组辣#include #include#include#include#includeusing namespace std;const int N=2000...
阅读全文
摘要:非常simple的二维数点问题。 1. 读入(这TM不是屁话) 2. 离散坐标(也是P话) 3. 按照从左到右,从下到上排序 4. 离线处理每一个矩阵,可以提前存好是加还是减,总之空间开4倍 5. 不要忘记开O2哟~#include#include#incl...
阅读全文

浙公网安备 33010602011771号