acm_编程技巧
lshacm
这个作者很懒,什么都没留下…
展开
-
二进制运算技巧
1.已知p>q,p减去若干步2的幂次后,让p==q,如何操作?先把p的最高幂次k求出来(O(logp));p依次减去2^k->2^0(前提是减后p仍大于q),最终一定能使p==q应用:LCA,将不同深度的节点提到相同深度,并继续向上升到公共祖先节点的子节点为止原创 2015-01-13 14:29:55 · 336 阅读 · 0 评论 -
二分的相关技巧
1.结果是整数,正确答案的变化范围是[a,b]初始化:l=a,r=b+1,正确答案的取值范围是[l,r) while(l<r-1){ int mid=l+(r-l)/2; build(mid);//操作 if(negativecycle()) r=mid;//此时mid是不符合条件的情况,r=mid原创 2015-01-12 14:23:02 · 278 阅读 · 0 评论 -
数据离散化
保持相对大小不变,减小数字之间的间隔void Seperaet();{ input(a),b=a; sort(b,b+n); seperate(h0,hh,h1);}void seperate(ll a[],ll b[],ll c[]){//a数组映射为1,2...n 加入c数组 b是a的有序数组 for(ll i=0;i<n;i++)原创 2015-01-14 16:02:05 · 394 阅读 · 0 评论 -
集合表示及其运算(持续更新)
集合运算:s^s0:s集合-s0集合(差集)s|s0:s集合∪s0集合(并集)集合运算技巧:1.枚举s集合的所有子集for(int s0=s;s0;s0=(s0-1)&s)//s0是s集合的所有子集原创 2014-12-24 22:42:22 · 773 阅读 · 0 评论 -
记录
long long INF:const ll INF=0x3FFFFFFFFFFFFFFFLL;原创 2015-09-27 09:40:38 · 351 阅读 · 0 评论 -
做题心得
1.矩阵加速的通法2.dp的优化方法尺取法/辅助数组法/辅助数据结构优化3.实际简化模型4.常见问题求解方法原创 2015-07-31 12:47:09 · 531 阅读 · 0 评论