上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 30 下一页
摘要: 先给出我所参考的两个链接:http://hi.baidu.com/aekdycoin/item/236937318413c680c2cf29d4 (AC神,数论帝 扩展Baby Step Giant Step解决离散对数问题)http://blog.csdn.net/a601025382s/article/details/11747747Baby Step Giant Step算法:复杂度O( sqrt(C) )我是综合上面两个博客,才差不多懂得了该算法。先给出AC神的方法:原创帖!转载请注明作者 AekdyCoin !【普通Baby Step Giant Step】【问题模型】求解A^x = 阅读全文
posted @ 2014-02-18 20:52 辰曦~文若 阅读(3636) 评论(0) 推荐(2)
摘要: 求解一元线性同余方程组:x=ri(mod ai) i=1,2,...,k解一元线性同余方程组的一般步骤:先求出前两个的解,即:x=r1(mod a1) 1x=r2(mod a2) 21式等价于x=r1+a1*m,2式等价于x=r2+a2*n联立可得:m*a1-n*a2=r2-r1=c若方程有解,则必须(a1,a2)|c设d=(a1,a2),那么如果有解,即可求得 m*a1-n*a2=d的解,m=m'则 m*a1-n*a2=c的解,m0=m'*c/d通解m*=m0+(a2/d)*i 令s=a2/d,则可以求得m的最小解 m=(m0%s+s)%s 带入x=r... 阅读全文
posted @ 2014-02-17 20:05 辰曦~文若 阅读(318) 评论(0) 推荐(0)
摘要: 题意:给出p(1=1可以得到Rk的序列,k=0,1,2,...,p-2。Mp为素数,当且仅当,Rp-2=0(mod Mp)2.Miller素数测试法我采用的是第一种,较为简单。第二种书上的没看懂,而且有些地方还印刷错误!!!。。。其实第一种对于我这个数学渣渣,我也不知道怎么证啦详解请见《ACM-ICPC程序设计系列 数论及应用》#include #include #include using namespace std;int t,p;bool isprime[70];void init() { memset(isprime,true,sizeof(isprime)); for(i... 阅读全文
posted @ 2014-02-16 18:57 辰曦~文若 阅读(257) 评论(0) 推荐(0)
摘要: 题意:给出一个区间[L,U],找出区间里相邻的距离最近的两个素数和距离最远的两个素数。用素数筛选法。所有小于U的数,如果是合数,必定是某个因子(2到sqrt(U)间的素数)的倍数。由于sqrt(U)最大也只有2^16,所以我们可以用素数筛选法,先预处理出2~2^16之间的素数,然后再用这些素数筛选出L~U之间的素数。接着就好办了。有几个要注意的是:1:L为1的情况,可以通过令L=2或者标记isp[0]=false。2:建议用long long,否则很容易在过程中超int范围,导致数组越界RE。。。#include #include #include using namespace std;co 阅读全文
posted @ 2014-02-16 12:23 辰曦~文若 阅读(293) 评论(0) 推荐(0)
摘要: 逆序KMP,真的是强大!参考链接,下面有题意解释:http://blog.sina.com.cn/s/blog_6ec5c2d00100tphp.htmlhttp://blog.csdn.net/sdjzping/article/details/8857749http://tech.ddvip.com/2013-09/1380477442203505.html直接暴力是枚举字符串的后面13个的字母,然后再用KMP匹配,这样的话,就绪要枚举多次,分别是后面的13,12,11....1个字母。但是通过观察可以发现,其实要求的是最长公共后缀! 那么可以把原来的字符串逆序转换一下,就变成了求最长公共前 阅读全文
posted @ 2014-02-14 18:52 辰曦~文若 阅读(428) 评论(0) 推荐(0)
摘要: 题意:给出一个大矩阵,求最小覆盖矩阵,大矩阵可由这个小矩阵拼成。(就如同拼磁砖,允许最后有残缺)正确解法的参考链接:http://poj.org/showmessage?message_id=153316http://blog.sina.com.cn/s/blog_69c3f0410100tyjl.html在discuss里还看到有人说可以这么简化:求横向最小长度时每次比较整列求纵向最小长度时每次比较整行真的是太神了!http://poj.org/showmessage?message_id=168710一开始,我也是按照错误的解法来求得。也就是用KMP的next求出每行的最小循环子串长度,然 阅读全文
posted @ 2014-02-14 18:42 辰曦~文若 阅读(1693) 评论(0) 推荐(0)
摘要: 参考连接:KMP+DP:http://www.cnblogs.com/yuelingzhi/archive/2011/08/03/2126346.html另外给出一个没用dp做的:http://blog.sina.com.cn/s/blog_82061db90100usxw.html题意: 给出一个字符串,求它的各个前缀在字符串中出现的次数总和。思路:记 dp[i] 为前 i 个字符组成的前缀出现的次数则 dp[next[i]]+=dp[i]dp[i]表示长度为i的前缀出现的次数,初始条件dp[i]=1,即至少出现一次。举例:index:012345 ababanext: 000123... 阅读全文
posted @ 2014-02-13 19:40 辰曦~文若 阅读(456) 评论(0) 推荐(0)
摘要: 关于KMP的最短循环节、循环周期,请戳:http://www.cnblogs.com/chenxiwenruo/p/3546457.html(KMP模板,最小循环节)POJ 2406 Power Strings题意:给一个字符串,问这个字符串是否能由另一个字符串重复R次得到,求R的最大值。#include #include #include /*题意:给一个字符串,问这个字符串是否能由另一个字符串重复R次得到,求R的最大值。*/using namespace std;const int maxn=1000005;int next[maxn];char str[maxn];void getnex 阅读全文
posted @ 2014-02-12 21:48 辰曦~文若 阅读(283) 评论(0) 推荐(0)
摘要: http://blog.sina.com.cn/s/blog_74e20d8901010pwp.html我采用的是方法三。注意:当长度相同时,取字典序最小的。#include #include #include #include /*http://blog.sina.com.cn/s/blog_74e20d8901010pwp.html我采用的是方法三。注意:当长度相同时,取字典序最小的。*/using namespace std;const int maxn=4005;char str[maxn][210];int n;int minlen; //n个字符串中最短的长度int id; //长 阅读全文
posted @ 2014-02-12 21:31 辰曦~文若 阅读(244) 评论(0) 推荐(0)
摘要: (可以转载,但请注明出处!)下面是有关学习KMP的参考网站http://blog.csdn.net/yaochunnian/article/details/7059486http://blog.csdn.net/v_JULY_v/article/details/6111565http://blog.csdn.net/v_JULY_v/article/details/6545192http://blog.csdn.net/oneil_sally/article/details/3440784http://billhoo.blog.51cto.com/2337751/411486先说说next数组 阅读全文
posted @ 2014-02-12 18:34 辰曦~文若 阅读(7453) 评论(0) 推荐(3)
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 30 下一页