随笔分类 - 数据结构
摘要:额这个题么有一个很关键的点:结点个数依然为2N-1(证明可以看sam的讲稿)不难发现以下性质:区间定位个数+区间所覆盖的节点个数=2*区间长度所以问题变为,一个区间覆盖了多少个节点?我们可以求出所有的节点,然后这个问题就是一个二维偏序计数问题了具体用离线+按照r排序套...
阅读全文
摘要:线段树套分块/主席树!我们考虑到ai,p,q比较小(#include#include#includeusing namespace std;struct dq{ int p,q,k; }; vector w[100010];int f[10010],g[110][10...
阅读全文
摘要:线段树套分块/主席树!我们考虑到ai,p,q比较小(#include#include#includeusing namespace std;struct dq{ int p,q,k; }; vector w[100010];int f[10010],g[110][10...
阅读全文
摘要:我们先写裸的dp,设φ[i]表示长度为i的划分方案数,φ(0)=1有φ(i)=Σφ(j) (|sum[j,i]|#include#include#define N 200010 #define LL long long#define M 1000000007 usin...
阅读全文
摘要:我们先写裸的dp,设φ[i]表示长度为i的划分方案数,φ(0)=1有φ(i)=Σφ(j) (|sum[j,i]|#include#include#define N 200010 #define LL long long#define M 1000000007 usin...
阅读全文
摘要:继续上一篇那套题可以将x,y宙分开讨论,对于每一维维护一个数据结构求出所有比之小的部分的和和比之大的部分的和所以我们先将这些点分别按x,y轴排序,得到rankx和ranky之后用树状数组即可#pragma GCC optimize("O3")#pragma G++ o...
阅读全文
摘要:继续上一篇那套题可以将x,y宙分开讨论,对于每一维维护一个数据结构求出所有比之小的部分的和和比之大的部分的和所以我们先将这些点分别按x,y轴排序,得到rankx和ranky之后用树状数组即可#pragma GCC optimize("O3")#pragma G++ o...
阅读全文
摘要:最近的题目都太难了啊,于是在oj上面瞎找题目来切正好这一套题目名都比较优雅于是就选了这一套这个看起来十分像并查集没错,我们发现,如果两个结论互为逆反命题,那么这两个结论等价而且一个逆命题的逆命题或者是反命题的反命题就是自己所以我们发现,1和2是等价的,这就如同敌人的敌...
阅读全文
摘要:最近的题目都太难了啊,于是在oj上面瞎找题目来切正好这一套题目名都比较优雅于是就选了这一套这个看起来十分像并查集没错,我们发现,如果两个结论互为逆反命题,那么这两个结论等价而且一个逆命题的逆命题或者是反命题的反命题就是自己所以我们发现,1和2是等价的,这就如同敌人的敌...
阅读全文
摘要:题意:给你一颗树,要求断掉一条边,使得剩下两个联通快的直径之和最大一看就是树形DP嘛,c1表示最长边c2次长,f表示父亲部分的最长路上面做法不讲,我们讲一种比较新奇的方法假设我们枚举断哪一条边,在lgn时间内求出两个联通快的直径不就行了嘛怎么做呢,我们发现,可以用树的...
阅读全文
摘要:题意:给你一颗树,要求断掉一条边,使得剩下两个联通快的直径之和最大一看就是树形DP嘛,c1表示最长边c2次长,f表示父亲部分的最长路上面做法不讲,我们讲一种比较新奇的方法假设我们枚举断哪一条边,在lgn时间内求出两个联通快的直径不就行了嘛怎么做呢,我们发现,可以用树的...
阅读全文
摘要:相信大家都猜到题意了,简单说一下圆形广场共有 N 个种花的位置,顺时针编号1到N。并且每个位置都有一个美观度ai ,两株花不能种在相邻的位置(1号和N号也算相邻位置)一共有 M 株花,现在小D也想知道应该如何摆这 N 株花才能使美观度最大这道题显然可以用堆,每次将堆顶...
阅读全文
摘要:相信大家都猜到题意了,简单说一下圆形广场共有 N 个种花的位置,顺时针编号1到N。并且每个位置都有一个美观度ai ,两株花不能种在相邻的位置(1号和N号也算相邻位置)一共有 M 株花,现在小D也想知道应该如何摆这 N 株花才能使美观度最大这道题显然可以用堆,每次将堆顶...
阅读全文
摘要:这道题十分神,挖坑待填DJL为了避免成为一只咸鱼,来找czgj学习Fibonacci数列。通过czgj的谆谆教导,DJL明白了Fibonacci数列是这样定义的:F(1)=1;F(2)=1;F(n)=F(n-1)+F(n-2)(n>2)Czgj深谙熟能生巧的道理,于是...
阅读全文
摘要:这道题十分神,挖坑待填DJL为了避免成为一只咸鱼,来找czgj学习Fibonacci数列。通过czgj的谆谆教导,DJL明白了Fibonacci数列是这样定义的:F(1)=1;F(2)=1;F(n)=F(n-1)+F(n-2)(n>2)Czgj深谙熟能生巧的道理,于是...
阅读全文
摘要:您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:1.查询k在区间内的排名2.查询区间内排名为k的值3.修改某一位值上的数值4.查询k在区间内的前驱(前驱定义为小于x,且最大的数)5.查询k在区间内的后继(后继定义为大于x,且最小的数)...
阅读全文
摘要:您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:1.查询k在区间内的排名2.查询区间内排名为k的值3.修改某一位值上的数值4.查询k在区间内的前驱(前驱定义为小于x,且最大的数)5.查询k在区间内的后继(后继定义为大于x,且最小的数)...
阅读全文
摘要:如果没有这个+x的话应该都能想到是按位拆开每一位处理吧现在考虑这个+x如何处理一个数v加上x,如果有(v+x)%2^i>2^(i-1)的话,那么就必然第i位为1所以我们考虑,对于每一个询问的y,若有y&(1#include#include#define f(k) (1...
阅读全文