摘要: 上面的是刘汝佳的写法,复杂度为$O(logn)$ 阅读全文
posted @ 2018-04-06 18:14 摇啊摇啊 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 核心代码: 意思:当$i$是某个素数的整数倍时,$i*prime[j+1]$肯定被筛选过了,跳出循环。 关键:保证每个合数只会被它的最小质因数筛去 因为i当$i%prime[j]==0$时,$i$可以看作$prime[j]*某个数$,所以对于下个loop的$j$(我们用的$j+1$),可以写成$pr 阅读全文
posted @ 2018-04-06 14:55 摇啊摇啊 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 好文章:RSA实践 阅读全文
posted @ 2018-04-06 11:15 摇啊摇啊 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 1 #define N 100010 2 int m,n;int p[N],r[N],w[N];int u[N],v[N]; 3 int cmp(int i,int j){return w[i]<w[j];} //间接排序函数! 4 int find(int x){return p[x]== x ? x:p[x]=find(p[x]);} //并查集的find,寻找结点x的... 阅读全文
posted @ 2018-03-23 14:42 摇啊摇啊 阅读(109) 评论(0) 推荐(0) 编辑
摘要: ADT: 1 const int maxn = 150; //表示集合x,y中顶点个数的最大值 2 3 int n,m; // n,m分别表示 x,y中顶点个数 4 bool g[maxn][maxn]; //邻接矩阵,1表示有连接 5 int cx[maxn];//最大匹配中,与x集合中x[i]匹 阅读全文
posted @ 2018-03-22 15:02 摇啊摇啊 阅读(179) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/SYCstudio/p/7260613.html 这个博主写的很好完全看得懂就不自己写了 方便自己使用还是把模板抄出来吧。 ADT: 1 const int max_e = 55000; 2 const int max_v = 250; 3 const 阅读全文
posted @ 2018-03-21 12:57 摇啊摇啊 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 在总流量最大的前提下,总费用最小的流为最小费用最大流。 分别用$c$和$a$表示每条边的容量和费用。 和最大流问题的区别要注意的是:可能存在平行边,它们的费用不同,所以无法合并这两条弧。(先假设图存在平行边和反向边),这样就可以用邻接矩阵cap和cost来保存各边的容量和费用了。 最小费用路算法和E 阅读全文
posted @ 2018-03-20 21:45 摇啊摇啊 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 最近感冒身体状况奇差,直接走堂了上周的3391,OJ也没怎么看(看了也看不进去看进去也不会),乘着灌了一吨药睡醒后结合紫书和课件,参考其他大佬的博客写完这个方面的概念和ADT吧。 1.概念 最大流定义:从$s$(通常规定为$1$)运东西到$t$(通常规定为$n$),最多运多少的问题称为最大流。关注点 阅读全文
posted @ 2018-03-19 14:24 摇啊摇啊 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 在回溯法中,每个决策对应于给一个节点产生新的子树,而解的生成过程对应一颗解答树,节点的层数就是下一个待填充位置$cur$。 在多阶段决策的最优化问题,大多可以用dp解决,状态转移则类似于回溯法中的解答树。 UVa 116 $d(i,j)$表示从第此处出发到达最后一列的最小和,要求字典序最小,就同时要 阅读全文
posted @ 2018-03-12 22:39 摇啊摇啊 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 当时就觉得回溯法学的不是很好,在处理dp多状态问题前,温习一遍回溯法:把待求解的问题分成不太多的步骤,每个步骤只有不太多的选择,就可以考虑回溯法。 普通八皇后思路:从64格子中选8个格子,枚举的话一共有$C^{8}_{64}=4.426X10^{9}$解法,不爆才怪。观察基本性质,每一行只能有一个皇 阅读全文
posted @ 2018-03-12 13:47 摇啊摇啊 阅读(154) 评论(0) 推荐(0) 编辑