先介绍两个:

大数的Gcd

Stein+欧几里德

  

function stein(a,b:int64):int64;
begin
if a<b then exit(stein(b,a));
if b= then exit(a);
if ((a and )=) and ((b and )=) then exit(stein(a>>,b>>)<<);
if (a and )= then exit(stein(a>>,b));
if (b and )= then exit(stein(a,b>>));
exit(stein((a+b)>>,(a-b)>>));
end;

小数的Gcd

辗转相除法

  

function stein(a,b:int64):int64;
begin
if a<b then exit(stein(b,a));
if b= then exit(a);
if ((a and )=) and ((b and )=) then exit(stein(a>>,b>>)<<);
if (a and )= then exit(stein(a>>,b));
if (b and )= then exit(stein(a,b>>));
exit(stein((a+b)>>,(a-b)>>));
end;

我们经常要计算到lcm,我们有一个特别优雅的结论

a*b/gcd(a,b)=lcm(a,b)

如此我们只需计算gcd即可,当a,b比较大的时候是一个很好的优化

下面来看一题

题目描述

输入

对于每个测试点:
第一行包括一个整数T,代表数据组数。
对于接下来的每一组数据,包括两行。
第一行,为一个整数N 代表序列长度。
第二行,为用空格分隔的N 个整数Ai,分别代表每一个材料计算好的权值。

输出

对于第i 组数据,你需要输出组数标示“Case i: ” 其中i 表示当前的数据组数。
紧接着,需要输出所要计算的参数α与β,以空格分隔。
如果不存在所要求的子串,对应的参数α或β 设为-1。

样例输入

3
2
7 2
4
2 2 3 4
3
2 2 4

样例输出

Case 1: 2 2
Case 2: 4 2
Case 3: -1 -1

提示

  这题大概意思要你分别求两个最长子串,使gcd(al,a2,....,ar)=1  lcm(al,.....ar)=al*....*ar;

  gcd好做,读入时不断gcd(a[i],a[i+1]),如果存在gcd(a[i],a[i+1])=1则整串互质,即ans:=n;否则就无解了

  第二问Dp做法

  f[i]=max(f[i-1]+1,i-k+1);  k为最后一个不于ai互质的数的编号。

  答案就是max(f[1].....,f[n-1],f[n]);

  复杂度O(n)

  第二种解法:维护队列
    1 维护一个这样的队列使得队列中的数两两互质

    2 从左到右依次让元素入队如果队列中一旦不互质,则让队首出队,直到满足两两互质,在这过程中记录元素个数即可

   

有关Gcd,Lcm的一点小结论的更多相关文章

  1. Mathematics:GCD & LCM Inverse(POJ 2429)

    根据最大公约数和最小公倍数求原来的两个数 题目大意,不翻译了,就是上面链接的意思. 具体思路就是要根据数论来,设a和b的GCD(最大公约数)和LCM(最小公倍数),则a/GCD*b/GCD=LCM/G ...

  2. 数论入门2——gcd,lcm,exGCD,欧拉定理,乘法逆元,(ex)CRT,(ex)BSGS,(ex)Lucas,原根,Miller-Rabin,Pollard-Rho

    数论入门2 另一种类型的数论... GCD,LCM 定义\(gcd(a,b)\)为a和b的最大公约数,\(lcm(a,b)\)为a和b的最小公倍数,则有: 将a和b分解质因数为\(a=p1^{a1}p ...

  3. 洛谷 UVA11388 GCD LCM

    UVA11388 GCD LCM Description of the title PDF The GCD of two positive integers is the largest intege ...

  4. POJ 2429 GCD & LCM Inverse(Pollard_Rho+dfs)

    [题目链接] http://poj.org/problem?id=2429 [题目大意] 给出最大公约数和最小公倍数,满足要求的x和y,且x+y最小 [题解] 我们发现,(x/gcd)*(y/gcd) ...

  5. hdu-3071 Gcd & Lcm game---质因数分解+状态压缩+线段树

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3071 题目大意: 给定一个长度为n的序列m次操作,操作的种类一共有三种 查询 L :查询一个区间的所 ...

  6. UVA11388 GCD LCM

    (链接点这儿) 题目: The GCD of two positive integers is the largest integer that divides both the integers w ...

  7. POJ 2429 GCD & LCM Inverse (Pollard rho整数分解+dfs枚举)

    题意:给出a和b的gcd和lcm,让你求a和b.按升序输出a和b.若有多组满足条件的a和b,那么输出a+b最小的.思路:lcm=a*b/gcd   lcm/gcd=a/gcd*b/gcd 可知a/gc ...

  8. [POJ 2429] GCD & LCM Inverse

    GCD & LCM Inverse Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 10621   Accepted: ...

  9. 关于win8开发的一点小总结

    我今天做画面的时候,发现了一点小问题. 我在xmal文件里面加了一个CheckBox控件,设置IsChecked属性为True,并添加了Checked事件.Checked事件里面有对另外一个TextB ...

随机推荐

  1. Struts 2的iterator标签来遍历一个含有双层List的嵌套

    今天碰到一个很有意思的问题,就是需要用Struts 2的iterator标签来遍历一个含有双层List的嵌套. 首先我们从最基础的说起,用iterator标签遍历一个List. 如果Action中有一 ...

  2. Could not find class 'XXX.activity‘', referenced from method 'YYYY'

    Could not find class 'XXX.activity‘', referenced from method 'YYYY'的解决方案: 出现这个错误.是由于eclipse升级ADT所导致的 ...

  3. 学习zepto.js(原型方法)

    学习zepto.js(原型方法)[1] 转载 新的一周,新的开始,今天来学习一下zepto里边的原型方法,就是通过$.进行调用的方法,也是可以通过$.fn进行扩展的方法: $.camelCase(): ...

  4. 9.java.lang.ClassCastException

    java.lang.ClassCastException 数据类型转换异常 当试图将对某个对象强制执行向下转型,但该对象又不可转换又不可转换为其子类的实例时将引发该异常,如下列代码. Object o ...

  5. 项目中引用ThinkPHP框架

    ThinkPHP是一个宽度.兼容且简单的国产的轻量级框架,具有优良的性能,并且非常注重易用性. 那么,我们该如何将ThinkPHP引入自己的项目中,使得自己的项目可以使用这款优良的框架呢? 首先介绍下 ...

  6. 2016 Multi-University Training Contest 8 总结

    回家之后一堆的事情,最后两场多校都没怎么参加,终于现在有些时间可以把第八场的总结补上. 欣君开局看出06题公式,我照着写,一A,差一分钟拿到FB,有点可惜. 磊哥觉得11题水题,写了一下,一A. 欣君 ...

  7. 桂林电子科技大学出校流量控制器Android版1.0.0

    每次玩游戏的时候,总是要开着电脑挂着出校控制器,真是浪费国家资源啊,,, 突然想起学校有个开放流量的网页,无奈UC等浏览器真是尝试优化js脚本啊,挂在后台,不到几分钟就掉线了,悲剧啊~~~ 还好And ...

  8. swift3.0 构造器、析构方法(3)

    构造和析构是两种特殊的方法,在对象进行初始化的时候 使用构造,在对象的释放操作中,使用析构. 构造器的定义: init (){ //代码 } init(name:String){ //代码 } 在构造 ...

  9. window.open打开新页面,并将本页数据用过url传递到打开的页面;需要两个页面;

    页面1 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8 ...

  10. Android 常用开发类库

    android.app :提供高层的程序模型.提供基本的运行环境    android.content :包含各种的对设备上的数据进行访问和发布的类    android.database :通过内容 ...