ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

小技巧

2019-03-23 09:51:27  阅读:203  来源: 互联网

标签:01 技巧 sum times cdots choose mod


尺取法。

\(meet~in~middle\)

枚举子集:\(for(int~i=s;i;i=(i-1)\&s);\)

无向连通图个数=总数-不联通的图的个数(基准点计数)。

01串也可以黑白染色\(qwq\)

处理1~n的所有数的所有因子,枚举因子\(\times\)倍数是O(n logn)的。

\(V-E+F=1+C\)
***
枚举\(k\)子集的方法:

for(int S=(1<<k)-1,ls1,ls2;S<(1<<n);S=(((S&~ls2)/ls1)>>1)|ls2){
    ···
    ls1=S&-S;
    ls2=S+ls1;
}

\[S \bigcap T = \emptyset \Leftrightarrow S \subseteq \complement_U T\]
求子集比较方便
****
\[\lceil\frac A B\rceil=\lfloor\frac {A+B-1}{B}\rfloor\]
****
查分表第0条对角线(第一列)等于
\[c_0,c_1,c_2,\cdots,c_p,0,0,0,\cdots(c_i!=0)\]
的序列的通项满足:
\[h_n=c_0{n\choose 0}+c_1{n\choose1}+c_2{n \choose 2}+\cdots+c_p{n \choose p}\]
前缀和满足:
\[\sum_{k=0}^n h_k=\sum_{i=0}^pc_i\sum_{k=10}^n{k\choose i}=\sum_{i=0}^pc_i{k+1\choose i+1}\]
****
对于\(n^k\) 求前缀和通项公式:
\[a_0+a_1+a_2+a_3+\cdots+a_{k+1}=a_0+{k\choose0}\]
\[a_1+2a_2+3a_3+4a_4+\cdots+(k+1)a_{k+1}=a_1+{k\choose1}\]
\[a_2+3a_3+6a_4+10a_5+\cdots+(???)a_{k+1}=a_2+{k\choose2}\]
\[a_3+4a_4+10a_5+20a_6+\cdots+(???)a_{k+1}=a_3+{k\choose3}\]
\[\vdots\]
\[(???)a_k+(???)a_{k+1}=a_k+{k\choose k}\]
解方程组可得系数。
****
构造一个每个点度数都确定的没有子环没有重边的无向图:找当前度数最大的优先连度数大的。正确性:贪心,无解的限制是所剩的点<度数最大的点的度数。
****
\(reverse~sort\)一段\(01\)序列,要求\(reverse\)元素的总和尽量小:每次间隔一组\(01\)进行交换(一段0或1看做一个),这样每次都吧两个相同的数字合并成一个,减半,所以复杂度\(nlogn\)
\(for~example:\)
\[10101010\]
\[01100110\]
\[00011110\]
\[00001111\]
****
\(xor\)具有可逆性,\(a\)进行一系列\(xor\)得到\(b\),\(b\)以相反的顺序进行\(xor\)也可以得到\(a\),在让\(a\)得到\(b\)的过程中,可以\(a\)和\(b\)一起动。CF472F
****
线性基判断相等:将两个线性基消主元消成2的次幂,再判断一一相等。
****
值为\(0/1\)的\(dp\)每阶段按\(0/1\)段\(dp\)(\(0/1\)交界处)。
****
对于一个图,建立一棵生成树,每条非树边赋一个值,所跨的树上的链都异或上这个权值,然后
“一个边集的权值异或为\(0\Leftrightarrow\)删掉这些边图被分割成两部分”(存在\(hash\)冲突)
****
点分治处理联通块问题,强制每次都经过分治中心。
****
先对\(a\)取\(max\),后对\(b\)取\(min\):

$a~>~b\Leftrightarrow \(区间赋值为\)b$

$a~<~b\Leftrightarrow \(分开处理,小于\)a\(的改为\)a\(,大于\)b\(的改为\)b\(,\)ab$之间不变。

反之同理。
****
\(O(1)\)快速乘:

原理:\(a~mod~p = a - \lfloor\frac a p\rfloor\times p\)只与差有关。

    ans = ((x * y - (LL) ((LDB) x * y / m) * m) % m + m) % m;

解释:第一个\(a\)直接\(mod~2^{63}-1\),第二个用\(LDB\)暂存,除以\(m\)后在\(LL\)范围内再转成\(LL\)再乘\(m~mod~2^{63}-1\)两数相减即为答案。
****
求期望时,当每种概率的贡献是从一开始的连续的整数时,答案是贡献大于\(1\)的概率\(+\)贡献大于\(2\)的概率\(\cdots\cdots\)。

原理:贡献为\(i\)的被统计了\(i\)次。

T71980 【模板】伯努利概型
****
对于卷积:
\[c_k=\sum_{i=0}^n a_i\times b_{k-i}\]
\(1.\)若\(n>k\):

把\(c,b\)右移,
\[c_k=d_{n+k}=\sum_{i=0}^n a_i\times b_{k-i+n}\]
由于\(a_{i>n} = 0\),
\[c_k=d_{n+k}=\sum_{i=0}^{n+k} a_i\times b_{k+n-i}\]
\(2.\)若\(n<k\):

由于\(a_{i>n}=0\)
\[c_k=\sum_{i=0}^k a_i\times b_{k-i}\]
****

标签:01,技巧,sum,times,cdots,choose,mod
来源: https://www.cnblogs.com/Smeow/p/10582594.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有