随笔分类 - 树状数组
摘要:题面 我们寻找一个东西总是比判断一个东西复杂,对吧; 那么就转化思路:如果我们知道等差数列的中间项mid,那么就是寻找一对数(l,r),使得abs(mid-l)==abs(mid-r),且l<mid<r; 可以枚举每个数作为中间项,然后O(n)的判断是否存在这样的数对(l,r); 但这是O(n^2)
阅读全文
摘要:题面 “我有个愿望,我希望穿越一切找到你。” 这是个二维平面世界,平面上有n个特殊的果实,我从(0,0)点出发,希望得到尽量多的果实,但是出于某种特殊的原因,我的运动方式只有三种(假设当前我在(x,y)): 1、我可以走到(x+1,y) 2、我可以走到(x,y+1) 3、我可以走到(x+1,y+1)
阅读全文
摘要:题面 Dilworth定理:在数学理论中的序理论与组合数学中,Dilworth定理根据序列划分的最小数量的链描述了任何有限偏序集的宽度。 反链是一种偏序集,其任意两个元素不可比;而链则是一种任意两个元素可比的偏序集。Dilworth定理说明,存在一个反链A与一个将序列划分为链族P的划分,使得划分中链
阅读全文
摘要:题面 本题其实主要就这几点: 1.离线,以右端点排序(从小到大); 2.建立树状数组c[],c[i]表示从1~i中有多少种不同的数字; 3.对于每次查询的答案就是sum(r)-sum(l-1); 4.由于问题是离线排序回答,所以应该注意输出顺序(离散化前的顺序); Q:直接统计前缀和,然后对于每次询
阅读全文
摘要:题面 本题随便看两眼就知道该题满足了优美的查分性质; 对于在区间[x,y]内操作时,应该将查分数组的第x项和第y+1项进行相反操作; 询问答案时,问第i个数的值就是查分数组的前i项和; 暴力+玄学卡常可以A掉数据十分水的数据; 正解是求前i项和的时候用树状数组来维护;
阅读全文
摘要:对于一个数列a[],比如说:5 3 4 2 1; 我们可以将其离散化成b[],先在位置5加1,然后在位置3加1,然后在位置4加1,以此类推; 当在一个位置x加1时,b[]中已经加完的的值保证了其l<r; 那么如何统计a[l]>a[r]的个数呢? 这个个数就是sum(b[1]~b[x]); 到这里求得
阅读全文

浙公网安备 33010602011771号