Miller&&Pollard HDOJ 4344 Mark the Rope】的更多相关文章

题目传送门 题意:一个长为n(n<2^63)的管子,在管子上做标记,每隔L个长度单位做一个标记,从管子头端开始,保证最后一次标记恰好在管子的尾端.让你找出有多少个这样的L(L<n),且他们之间两两互素,然后求出这些L的和最大值. 分析:转换一下就是求n有多少个质因子用pollard_rho大整数分解分解n,因为素数之间两两互质,所以每段L都由每个质因子的k次幂组成,如果n是素数,由于L<n,所以只能L==1 收获:接触到随机算法 代码: /************************…
BUPT2017 wintertraining(15) #8E 题意 长度为n(\(n<2^{63}\))的绳子,每隔长度L(1<L<n)做一次标记,标记值就是L,L是n的约数. 每轮标记都选一个L,且L之间两两互质. 求L的最多种数K.以及标记之和S的最大值. 题解 对n进行分解质因数,K就是不同质因子的个数,S就是p^{a_i}之和.不过题目要求L<n,所以当S算出来是n时,再除以一下最小的质因子. 分解比较小的n(<1e9),可以直接枚举,复杂度是\(O(\sqrt n…
题目传送门 题意:素性测试和大整数分解, N (2 <= N < 254). 分析:没啥好讲的,套个模板,POJ上C++提交 收获:写完这题得到模板 代码: /************************************************ * Author :Running_Time * Created Time :2015-8-28 13:02:38 * File Name :POJ_1811.cpp ************************************…
题目:Mark the Rope 题意就是给一个数,然后求这个数的所有因子中组成的最大的一个子集,其中1和本身除外,使得在这个子集中元素两两互素,求最大子集的元素个 数,并且求出和最大的值. 找规律就不难发现其实答案就是先大数分解n,例如,180=2^2*3^2*5,那么就输出3   18   ,这两个数分别是素因子的个数和2^2,3^2,5的和. #include <stdio.h> #include <stdlib.h> #include <string.h> #i…
题目大意 给定两个数a,b的GCD和LCM,要求你求出a+b最小的a,b 题解 GCD(a,b)=G GCD(a/G,b/G)=1 LCM(a/G,b/G)=a/G*b/G=a*b/G^2=L/G 这样的话我们只要对L/G进行质因数分解,找出最接近√(L/G)的因子p,最终结果就是a=p*G,b=L/p,对(L/G)就是套用Miller–Rabin和Pollard's rho了,刚开始Pollard's rho用的函数也是 f(x)=x^2+1,然后死循环了....改成f(x)=x^2+c(c<…
题目大意 给你一个非常大的整数,判断它是不是素数,如果不是则输出它的最小的因子 题解 看了一整天<初等数论及其应用>相关部分,终于把Miller–Rabin和Pollard's rho这两个算法看懂了O(∩_∩)O~~ Miller–Rabin主要用到了费马小定理,即:设p是一个素数,a是一个正整数且p不整除a,则ap-1≡1(mod p).若x=b(n-1)/2,x2=bn-1≡1(mod n),如果n是一个素数,则x≡1(mod n)或者x≡-1(mod n).因此,一旦我们有bn-1≡1…
BZOJ 3667: Rabin-Miller算法 Time Limit: 60 Sec  Memory Limit: 512 MBSubmit: 1044  Solved: 322[Submit][Status][Discuss] Description   Input 第一行:CAS,代表数据组数(不大于350),以下CAS行,每行一个数字,保证在64位长整形范围内,并且没有负数.你需要对于每个数字:第一,检验是否是质数,是质数就输出Prime 第二,如果不是质数,输出它最大的质因子是哪个.…
一些前置知识可以看一下我的联赛前数学知识 如何判断一个数是否为质数 方法一:试除法 扫描\(2\sim \sqrt{n}\)之间的所有整数,依次检查它们能否整除\(n\),若都不能整除,则\(n\)是质数,否则\(n\)是合数. 代码 bool is_prime(int n){ if(n<2) return 0; int m=sqrt(n); for(int i=2;i<=m;i++){ if(n%i==0) return 0; } return 1; } 方法二.线性筛 用 \(O(n)\)…
找了一些曾经没提到的算法.这应该是数学基础系最后一篇. 曾经的文章: 数学基础I 莫比乌斯反演I 莫比乌斯反演II 数学基础II 生成函数 数学基础III 博弈论 容斥原理(hidden) 线性基(hidden) 卡特兰数/第二类斯特林数(hidden) 置换群(hidden) 莫比乌斯反演III(hidden) 线性筛(hidden) 欧拉函数 计算单个欧拉函数 设\(n\)的唯一分解为\(p_i\),则\(\varphi(n)=n\prod(1-\frac{1}{p_i})\). 奇偶性 \…
链接:http://acm.hdu.edu.cn/showproblem.php? pid=3864 题意:给出一个数N(1<=N<10^18).假设N仅仅有四个约数.就输出除1外的三个约数. 思路:大数的质因数分解仅仅能用随机算法Miller Rabin和Pollard_rho.在測试多的情况下正确率是由保证的. 代码: #include <iostream> #include <cstdio> #include <cstring> #include &l…
题目传送门 /* 题意:给一张图和一些有向边,问如何给边赋值使得d1 < d2 < .. < dx > ,,,< ddn 贪心:左边从2开始,右边从n开始,每次选择未标记且相连的点加入树,加入时间就是d[i],若不在树上的输出n,注意重边和重点 */ /************************************************ * Author :Running_Time * Created Time :2015-8-13 12:09:17 * File…
\(\\\) Miller-Rabin 素性测试 考虑如何检验一个数字是否为素数. 经典的试除法复杂度 \(O(\sqrt N)\) 适用于询问 \(N\le 10^{16}\) 的时候. 如果我们要把询问范围加到 \(10^{18}\) ,再多组询问呢? Miller 和 Rabin 建立了Miller-Rabin 质数测试算法. \(\\\) Fermat 测试 首先我们知道费马小定理: \[ a^{p-1}\equiv 1\pmod p \] 当且仅当 \(p\) 为素数时成立. 逆命题是…
最短路+01背包 In Action Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3857    Accepted Submission(s): 1229 Problem Description Since 1945, when the first nuclear bomb was exploded by the Manhattan…
前言 $Miller-Robbin$ 与 $Pollard Rho$ 虽然都是随机算法,不过用起来是真的爽. $Miller Rabin$ 算法是一种高效的质数判断方法.虽然是一种不确定的质数判断法,但是在选择多种底数的情况下,正确率是可以接受的. $Pollard Rho$ 是一个非常玄学的方式,用于在 $O(n^{1/4})$ 的期望时间复杂度内计算合数$n$的某个非平凡因子. 事实上算法导论给出的是 $O(\sqrt p)$ , $p$ 是 $n$ 的某个最小因子,满足 $p$ 与 $\f…
0.1 一些闲话 最近一次更新是在2019年11月12日.之前的文章有很多问题:当我把我的代码交到LOJ上,发现只有60多分.我调了一个晚上,尝试用{2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 61, 24251, 2147483647, 998244353}这么一大串数作为基底,然后左改右改,总算过去了.特别感谢 @骗分过样例 的提醒,现在张贴的代码应该是值得信赖的了. 之前我的同学好像就指出过我的文章的很多问题.比如说我之前写到,Miller Rabin在…
\(\text{update 2019.8.18}\) 由于本人将大部分精力花在了cnblogs上,而不是洛谷博客,评论区提出的一些问题直到今天才解决. 下面给出的Pollard Rho函数已给出散点图.关于\(Millar Robin\)算法的时间复杂度在我的博客应该有所备注.由于本人不擅长时间复杂度分析,如果对于时间复杂度有任何疑问,欢迎在下方指出. 1.1 问题的引入 给定一正整数\(N \in \mathbb{N}^*\),试快速找到它的一个因数. 很久很久以前,我们曾学过试除法来解决这…
Pollard Rho介绍 Pollard Rho算法是Pollard[1]在1975年[2]发明的一种将大整数因数分解的算法 其中Pollard来源于发明者Pollard的姓,Rho则来自内部伪随机算法固有的循环 Pollard Rho算法在其他因数分解算法[3]中不算太出众,但其空间复杂度Θ(1)的优势和好打的代码使得OIer更倾向于使用Pollard Rho算法 毕竟试除法太慢了,谁没事打Pollard Rho不打试除法 Pollard Rho原理 生日悖论 如果一年只有365天(不计算闰…
Pollard-Rho 是一个很神奇的算法,用于在 $O(n^{\frac{1}4}) $的期望时间复杂度内计算合数 n 的某个非平凡因子(除了1和它本身以外能整除它的数).事书上给出的复杂度是 \(O(\sqrt{p})\) , p 是 n 的某个最小因子,满足 p 与 n/p 互质.虽然是随机的,但 Pollard Rho 算法在实际环境中运行的相当不错,不会被卡. 简单来说:Pollard-Rho算法是 John Pollard发明的一种能 快速找到大整数的一个非1.非自身的因子 的算法.…
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 56784    Accepted Submission(s): 19009 Problem Description FatMouse prepared M pounds of cat food, ready to trade with the cats g…
Nasty Hacks Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3049    Accepted Submission(s): 2364 Problem Description You are the CEO of Nasty Hacks Inc., a company that creates small pieces of…
Box of Bricks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5994    Accepted Submission(s): 2599 Problem Description Little Bob likes playing with his box of bricks. He puts the bricks one up…
Description n个集合 m个操作 操作: 1 a b 合并a,b所在集合 2 k 回到第k次操作之后的状态(查询算作操作) 3 a b 询问a,b是否属于同一集合,是则输出1否则输出0 0<n,m<=2*10^4 Input Output Sample Input Sample Output Solution 用rope实现可持久化数组,用rope的历史记录功能实现可持久化并查集,通过时间168ms #include<cstdio> #include<ext/rop…
参考资料 1)官方说明 支持 sorry,cena不支持rope 声明 1)头文件 #include<ext/rope> 2)调用命名空间 using namespace __gnu_cxx; 底层原理 查了资料,大概可以称作可持久化平衡树,因为rope适用于大量.冗长的串操作,而不适合单个字符操作官方说明如下: Though ropes can be treated as Containers of characters, and are almost Sequences, this is…
Description 这些日子,可可不和卡卡一起玩了,原来可可正废寝忘食的想做一个简单而高效的文本编辑器.你能帮助他吗?为了明确任务目标,可可对“文本编辑器”做了一个抽象的定义:   文本:由0个或多个字符构成的序列.这些字符的ASCII码在闭区间[32, 126]内,也就是说,这些字符均为可见字符或空格.光标:在一段文本中用于指示位置的标记,可以位于文本的第一个字符之前,文本的最后一个字符之后或文本的某两个相邻字符之间.文本编辑器:为一个可以对一段文本和该文本中的一个光标进行如下七条操作的程…
java.io.IOException: mark/reset not supported at java.io.InputStream.reset(InputStream.java:348) at com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(SoftMidiAudioFileReader.java:139) at javax.sound.sampled.AudioSystem.getAudioInputStre…
在Mac OS X系统下,Sublime Text是一款比较赞的编辑器. 作为空格党的自觉,今天mark一下使用Sublime Text 2时如何将Tab配置为4个空格: 方法来自以下两个链接: http://www.dbpoo.com/sublime-text2-tab/ http://www.micmiu.com/software/common/sublime-text2-tab-space/ 链接页面分别介绍了如何在 Preference --> Settings-User 或 Prefe…
题目链接 题意: 分粮食我就当成涂色了.有n个点的一棵树,在a到b的路上都涂上c颜色,颜色可重复叠加,问最后每一个点的最大颜色数量的颜色类型. 思路: 首先这题的输出是每一个点最后的情况,考虑离线做法.简化版问题:在一条线段上涂色,问每个点的最后的情况,假设在[a, b]区间涂色,那么在开始的位置a标记开始涂色,在结束的位置标记结束涂色,一棵动态的颜色树,维护当前颜色数量最大的数量.那么这题也可以考虑这么做,先对树进行树链剖分,然后按照剖分顺序dfn来遍历,提前读入所有操作,在涂色的两端标记,后…
“轻松搞定EMC-PCB和系统设计”课程介绍 本次课程特邀美国EMC领域权威专家Mark Montrose主讲,将涵盖满足产品电磁兼容性和信号完整性的基本原理.课程涉及多个领域,不仅仅针对PCB设计,也讨论系统级的一些问题. 时间:2016年5月16-17日 地点:城市客栈(深圳华侨城创意园店) 有兴趣的,可点击此报名: http://www.edadoc.com/cn/news/show_862.html 两天课程内容 •传输线理论和信号完整性概述•让电磁兼容性变得简单•抑制PCB EMC的一…
当把某个文件“Mark as Plain Text”时,该文件被当做普通文本,就不会有“代码自动完成提示”功能,如下图所示: 但是呢,右键菜单中貌似没有 相应的撤销 操作, 即使是把它删除,再新建一个同名的文件,先前“Mark as Plain Text”的操作效果还是会起作用的.即文件还是被当做“普通文本”,经过各种折腾,发现可以通过如下方式,撤销 Mark as Plain Text 操作: 找到路径:File -> Setting -> Editor -> File Types…
Using markshttp://vim.wikia.com/wiki/Using_marks1. There is no visible indication of where marks are set.2. Each file has a set of marks identified by lowercase letters (a-z).3. In addition there is a global set of marks identified by uppercase lette…