摘要: 题目意思,一个有向图,若有环(不仅仅是自环)或某个点入度大于等于2则不合法,否则合法,输出深度和所有连通分量在同一层的最大节点数。 判断一个没有入度>=2有向图是否有环: 只需一个判断条件:对所有入度为0的点进行DFS,若所有的点都访问到了,则无环,否则有环也就是说,只要保证每个点入度≥2,则该图的连通分量只能有几种情况:孤立点,非环,全部点收尾相接形成的环(不存在入度为0的点)所以对入度为0的点进行DFS前两种情况必定能访问到该连通分量内所有的点。 http://soj.me/show_problem.php?pid=1001&cid=970#include <iostr 阅读全文
posted @ 2013-04-13 11:48 Norcy 阅读(322) 评论(0) 推荐(0) 编辑
摘要: “如果抛开某些很NB,很强大,很邪恶的递归式不谈,如果不能有效的确定普通递归式和一些典型算法递归式的复杂度,那么这个人显然不是合格的Coder。”所以知道了解主定理的好处至少有一个,那就是可以快速分析某些递归式或某些算法的复杂度。引理:主定理:1.画个递归树,发现一共有logn层。2.为什么是d与logba比较每一层的复杂度是上一层的1/b,而子问题的个数是上一层的a倍所以第k层的工作量为ak*O(n/bk)d即O(nd)*(a/bd)k所以公比为(a/bd),就是看(a/bd)是否大于1小于1等于1啦~ 算法中的应用: 阅读全文
posted @ 2013-04-13 11:03 Norcy 阅读(331) 评论(0) 推荐(0) 编辑
摘要: RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然秘密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。准备工作:1.选择两个质数p, q2.令N = pq, e 为 与(p-1)(q-1)互质的数 (为了快速解密,若符合条件一般选择最小的3) (N, e)为公钥3.令d为e mod (p-1)(q-1)的逆。(N,d)为私钥现在就得到3个数,N e d。设 阅读全文
posted @ 2013-04-13 10:35 Norcy 阅读(268) 评论(0) 推荐(0) 编辑