
板子
Masker_43
这个作者很懒,什么都没留下…
展开
-
POJ 3239【Solution to the n Queens Puzzle】
题目链接思路:第一次做m皇后问题,用了深搜,TLE。注意这里的深搜可以逐列搜索,而深度也无需记录,因为可以用列数充当深度。dfs() 只有列数一个参数。并且这里的 flip() 比较特殊,我使用的方法是记录一个三维的标记数组,第一维代表已经填充的皇后造成的标记,所以每次翻转要用 memcpy(rem[y] , rem[y-1] , sizeof(rem[y-1]));以便回溯时消除标...原创 2019-04-29 13:59:07 · 161 阅读 · 0 评论 -
关于素数筛(埃氏筛和欧拉筛)的个人理解
写在前面:Li Zhuohan的BLOG对本文有极大启发。埃氏筛(Aye Sieve):原理:遍历每个素数,将它的倍数筛掉。为什么从 i*i 开始?例如 i = 7,如果从任意 i * a(a < i) 开始,若 a 是质数,则 a 可以筛掉它;若 a 是合数,则必有比 a 还小的质数可以筛掉它。如此,我们发现埃氏筛法保证了每次新的循环不再重复筛较小的一部分数字,但是由于 ...原创 2019-05-14 21:02:18 · 494 阅读 · 0 评论 -
邻接表与前向星
写在前面的话:acdreamers的BLOG给了本文很大启发。由于在明白了二者的写法之后,发现选择一个掌握就可以了,故只写出了邻接表的模板。前向星(存边):原理:将所有边按照先起点后终点的顺序从小到大排序。记录:对所有点,记录以某点为起点的所有边在 EDGE 数组中的起始位置:head[maxn],与长度(以该点为起点的边的个数):len[maxn]。局限:排序操作耗时,故使用链式...原创 2019-05-23 16:41:26 · 975 阅读 · 0 评论 -
LIS、LCS
LIS:Longest Increasing Subsequence朴素三角dp,注意初始化为1:int ans = 0;for(int i=1;i<=N;i++) dp[i] = 1;//自己开始自己结束,长度自然为 1 for(int i=1;i<=N;i++){ for(int j=1;j<i;j++) if(A[i] > A[j]) d...原创 2019-07-14 17:40:18 · 145 阅读 · 0 评论 -
并查集
核心:普通并查集:void INIT(){ memset(par , -1 , sizeof(par)); return ;}int FIND(int i){ return par[i] == -1 ? i : par[i] = FIND(par[i]);}void UNION(int l,int r){ par[parr] = parl; return ;}...原创 2019-07-05 21:27:58 · 156 阅读 · 0 评论 -
快速傅里叶变换
呜呜呜不要来北理上学写在前面的话:没有啦,想打ACM反正迟早都是要学的。废寝忘食苦学了两天,终于照着板子+魔鬼调试敲过了大整数乘法。真的好难,还好我们会用板子就可以啦。看了许多BLOG,将真正写的非常好很有帮助的贴出来:Leo_h1104...原创 2019-08-04 09:42:17 · 244 阅读 · 0 评论