随笔分类 -  小芝士&错误合集

摘要:树上差分有两种形式,一种是自上而下的,通过给子树树根赋值来影响整个子树,获取答案的时候从父亲处获取;一种是自下而上的,通过给某个点和它的某个祖先赋值来影响一条链,获取答案的时候要加上孩子的值。脑残了。 阅读全文
posted @ 2022-07-01 17:22 Feyn618 阅读(18) 评论(0) 推荐(0) 编辑
摘要:应该如下进行,不然复杂度是假的: for(int i=head[wh],th;i;i=e[i].next){ if((th=e[i].t)==fa)continue; dfs(th,wh); for(int j=0;j<=size[wh];j++){ for(int k=0;k<=size[th]; 阅读全文
posted @ 2022-06-29 14:18 Feyn618 阅读(26) 评论(0) 推荐(0) 编辑
摘要:rt。一个简单的公式。 数列有 n 项,第一项是 a ,公比是 q ,那么有 sum=a1qn1q 。 很基础。 阅读全文
posted @ 2022-06-29 11:04 Feyn618 阅读(407) 评论(0) 推荐(0) 编辑
摘要:就是这样一个柿子: f(S)=TSg(T)g(S)=TS1STf(T) 证明并不是很会证(昨天讲了但没太理解),但它的处理场景是很明晰的,其实就是求一些集合并集 阅读全文
posted @ 2022-06-28 08:34 Feyn618 阅读(34) 评论(0) 推荐(0) 编辑
摘要:一个很经典的问题。 首先要明确错排问题只和元素个数有关(只要元素互不相同),于是考虑递推。对于第i个元素放在哪里有两种决策,一种是放置的位置上面有一个本就不属于它的元素,另一种是干得漂亮刚好一互换就顶掉了那个位置原来的数,两种决策分别有 i-1 种可能(毕竟你总要选出一个位置来霍霍的吧),于是递推方 阅读全文
posted @ 2022-06-27 21:20 Feyn618 阅读(39) 评论(0) 推荐(0) 编辑
摘要:discuss 就像我提的那个问题一样,在状压中每次枚举一个状态i的合法子集j可以通过 for(int j=i;j;j=(j-1&i)) 的写法使得时间被最大效率地利用,复杂度是 3N ,证明嘛……各种方法都可以证没注意啦,记住结论就可以啦,毕竟不论组合意义还是硬推柿子都可以证。 阅读全文
posted @ 2022-06-27 20:57 Feyn618 阅读(26) 评论(0) 推荐(0) 编辑
摘要:有的时候会用到前缀和统计,比如[SCOI2007]组队我所学习的写法用到了差分的统计方法,但问题是有可能找出来的左右端点的大小关系反了,这时候直接上差分数组就会出现区间减的效果,而事实上我们希望的是忽略这个不合法的区间,所以说我们应该加一个特判来防止错误的发生,对于这道题来说就是这一句: if(ma 阅读全文
posted @ 2022-06-22 13:29 Feyn618 阅读(24) 评论(0) 推荐(0) 编辑
摘要:写[HNOI2011]数学作业的时候死调调不过,最后在题解里一句及其晦涩的话中找到了答案: AC code:an=qpow(ss,res)*an; WA code:an=an*qpow(ss,res); 究其原因是那句广为传唱的话,矩阵乘法满足结合律,但不满足交换律(毕竟有的情况下两个乘数交换了之后 阅读全文
posted @ 2022-06-21 16:40 Feyn618 阅读(77) 评论(0) 推荐(0) 编辑
摘要:没什么好说的。板子: #include<cstdio> #define int long long const int mod=1e18; int times(int s1,int s2){ if(s2==1)return s1; int an=times(s1,s2>>1); if(s2&1)re 阅读全文
posted @ 2022-06-21 15:26 Feyn618 阅读(25) 评论(0) 推荐(0) 编辑
摘要:[USACO12FEB]Nearby Cows G 一道换根DP的板子。但是通过这道题发现了我的一些错误代码细节。 一主要就是对于第二遍DFS的过程中对于自己的第二维(也就是距离那维)应当倒序枚举。因为你要保证你调用自己的某个值时这个值是正确的,又因为只会调用比自己小的dp值,所以倒序枚举就可以避免 阅读全文
posted @ 2022-06-21 08:25 Feyn618 阅读(29) 评论(0) 推荐(0) 编辑
摘要:在做这道题的时候发现的问题。这道题思路很简单,代码也很简单,但我调了半个小时,其原因是我忽略了一件非常重要的事情。那就是,第二维是0的状态也是要更新的。毕竟在一开始我们就用0xcf格式化了整个dp数组,如果你不对0进行更新,那么以后的位置就怎么也调用不了该决策。然鹅我当时人傻了没看出来。维生素B(我 阅读全文
posted @ 2022-06-19 16:12 Feyn618 阅读(19) 评论(0) 推荐(0) 编辑
摘要:关于Splay有个小点,但确实调了一会。 为了中考三周没打过代码了,手实在是生了。 rotate函数里的三组关系写的时候是有顺序之分的。一般都是先处理x和z的关系(这最简单),然后再处理ch和y、x和y的关系。要注意的是ch和y的关系要先写,不然会出现错误,错误原因是由于rotate的过程中y会取代 阅读全文
posted @ 2022-06-18 09:46 Feyn618 阅读(38) 评论(0) 推荐(0) 编辑
摘要:很可能会在他人代码里看见的东西,而且学习这个可以让你的代码显得更加高级。 pre prefix 前缀 suf suffix 后缀 对我的学习并没有什么帮助的知识,只是为了满足我的好奇心。 阅读全文
posted @ 2022-04-30 14:46 Feyn618 阅读(86) 评论(0) 推荐(0) 编辑
摘要:先说结论,即函数 fk(m)=i=1mik 最高次项为k+1次。很玄学对吧,于是到题解里康了一眼,然后整个人都不好了…… 开始还能试着推两步,到后来直接放弃。以后再说。但所幸题解里还有一种我看得懂的做法,虽然似乎并不严谨但对我这种蒟蒻来说已经足够了。 前置结 阅读全文
posted @ 2022-04-30 10:41 Feyn618 阅读(52) 评论(0) 推荐(0) 编辑
摘要:做拉插的时候遇到的一个东西,总感觉在哪里见过。 (a+b)n=i=0n(ni)aibni 思想特别好理解,就是考虑对于每个项系数是多少,就相当于是一个组合数(从n个式子里选i个式子将它们的a相乘可以得到 aibni 阅读全文
posted @ 2022-04-30 10:00 Feyn618 阅读(168) 评论(0) 推荐(0) 编辑
摘要:由上表可以推断出当 a·b<0 时两个向量成钝角,否则成锐角,且这一点和先后顺序无关。点积不同于叉积,它不看运算顺序,太良心了! 阅读全文
posted @ 2022-03-19 15:45 Feyn618 阅读(562) 评论(0) 推荐(0) 编辑
摘要:一些比较重要的知识,有关计算几何的基础。 叉积是:对于两个向量 a(x1,y1),b(x2,y2) ,有 a×b=x1y2x2y1 ,而这个数值有几何意义,两个向量为相邻边的平行四边形的面积(有方向的, ab 小于 π 阅读全文
posted @ 2022-03-19 14:20 Feyn618 阅读(424) 评论(0) 推荐(0) 编辑
摘要:又是一个关于时间标记的好东西。之前已经有过时间标记树状数组了,那么时间标记vis应该也不难。不多讲,只是在题解中看到了相关代码来说一下。 阅读全文
posted @ 2022-03-05 13:19 Feyn618 阅读(52) 评论(0) 推荐(0) 编辑
摘要:一个很简单的小知识。假如需要实现可以支持区间加和区间乘的数据结构,很显然我们需要双lazy,即lazyadd和lazymul。如何处理呢,考虑对于一个节点,如果要区间加a,那么lazyadd+=a。若区间乘b,那么lazyadd*=b,lazymul*=b。这样就可以很好地处理好这个问题。 为什么不 阅读全文
posted @ 2022-02-26 10:00 Feyn618 阅读(29) 评论(0) 推荐(0) 编辑
摘要:无聊的知识。 不等式ax+byc实际上是一个闭半平面。要验证一个矩形是否在这个闭半平面内只需要验证它的四个角的坐标是否满足以上等式就可以了。 很简单也很无聊的知识…… 阅读全文
posted @ 2022-02-10 15:31 Feyn618 阅读(142) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示