E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Looooops
poj2115 C
Looooops
(欧几里德)
CLooooopsTimeLimit: 1000MS MemoryLimit: 65536KTotalSubmissions: 20515 Accepted: 5531DescriptionACompilerMystery:WearegivenaC-languagestyleforloopoftype for(variable=A;variable!=B;variable+=C) stateme
d_x_d
·
2015-09-23 21:00
数论
扩展欧几里德
POJ 2115 C
Looooops
(一元线性同余方程)
Description问循环语句for(variable=A;variable!=B;variable+=C);被执行的次数x(结果mod2^k)Input多组输入,每组用例占一行包括四个整数A,B,C和k,以0000结束输入Output对于每组用例,输出循环次数x,如果是死循环则输出FOREVERSampleInput332163721673216342160000SampleOutput023
V5ZSQ
·
2015-09-04 08:00
POJ 2115 C
Looooops
(拓展的欧几里得) 拓展的欧几里得详解
DescriptionACompilerMystery:WearegivenaC-languagestyleforloopoftypefor(variable=A;variable!=B;variable+=C) statement;I.e.,aloopwhichstartsbysettingvariabletovalueAandwhilevariableisnotequaltoB,repeat
Grit_ICPC
·
2015-08-25 20:00
拓展的欧几里得
【POJ 2115】 C
Looooops
(扩展欧几里德)
【POJ2115】CLooooops输入四个数abck一个循环for(a;;a+=c)if(a==b)break;a在k进制内循环即0 usingnamespacestd; #definelllonglong lle_gcd(lla,llb,ll&x,ll&y)//递归扩欧 { if(!b) { x=1; y=0; returna; } lltmp,ans=e_gcd(b,a%b,x,y);
ChallengerRumble
·
2015-08-21 14:00
POJ - 2115 - C
Looooops
(扩展欧几里得)
CLooooopsTimeLimit: 1000MS MemoryLimit: 65536KTotalSubmissions: 19826 Accepted: 5299DescriptionACompilerMystery:WearegivenaC-languagestyleforloopoftype for(variable=A;variable!=B;variable+=C) stateme
u014355480
·
2015-07-27 14:00
ACM
poj
扩展欧几里得
POJ 2115:C
Looooops
CLooooopsTimeLimit: 1000MS MemoryLimit: 65536KTotalSubmissions: 19536 Accepted: 5204DescriptionACompilerMystery:WearegivenaC-languagestyleforloopoftype for(variable=A;variable!=B;variable+=C) stateme
u010885899
·
2015-07-05 13:00
poj
POJ2115 C
Looooops
解一元线性同余方程
题目链接:http://poj.org/problem?id=2115题目大意:有代码段for(variable=A;variable!=B;variable+=C)statement;已知所用到数都是mod2^k的数,问你statement语句一共执行了多少次,如果循环为死循环,输出FOREVER.分析:同余方程求解 相当于求A+Cx≡B(mod2^k)的最小正整数解x。实现代码如下:#incl
AC_Gibson
·
2015-06-05 15:00
C
Looooops
(欧几里德+poj2115)
H- CLooooopsTimeLimit:1000MS MemoryLimit:65536KB 64bitIOFormat:%I64d&%I64uSubmit Status Practice POJ2115Appointdescription: SystemCrawler (2015-05-01)DescriptionACompilerMystery:WearegivenaC-l
u010579068
·
2015-05-02 17:00
c
数论
欧几里德
poj2115
Looooops
扩展欧几里德
POJ 2115 C
Looooops
题解《挑战程序设计竞赛》
POJ2115CLooooops循环次数:求for(variable=A;variable!=B;variable+=C)的循环次数,其中变量为k比特无符号整数。4.1更加复杂的数学问题 模运算的世界 数论真是虐狗。k位无符号整数溢出会归零,所以问题其实是求模线性方程Cx=B-A(mod2k)的最小解。于是参考《算法导论》P528的拓展欧几里得算法和P534的伪码:就行了。真如《算法导论》数论这章
hankcs
·
2015-04-30 22:00
POJ 2115 C
Looooops
(线性同余方程)
CLooooopsTimeLimit: 1000MS MemoryLimit: 65536KTotalSubmissions: 19141 Accepted: 5049DescriptionACompilerMystery:WearegivenaC-languagestyleforloopoftype for(variable=A;variable!=B;variable+=C) stateme
u013068502
·
2015-04-21 21:00
poj
POJ 2115-C
Looooops
(基础一元线性同余方程)
题意:对于C的for(i=A;i!=B;i+=C)循环语句,问在k位存储系统中循环几次才会结束。若在有限次内结束,则输出循环次数。否则输出FOREVER思路:易列出同余方程:x*C+y*2^k=B-A用拓展gcd求解即可//148K0MSC++808B #include #include #include #include usingnamespacestd; typedeflonglongll
kalilili
·
2015-04-07 00:00
POJ2115 C
Looooops
【解线性同余方程】
题目链接:http://poj.org/problem?id=2115题目大意:对于循环语句:for(inti=A;i!=B;i+=C)语句1;已知i、A、B、C都是k进制的无符号整数类型,给出A、B、C、k的值,计算并输出语句1的执行次数,如果为无限次,那么直接输出"FOREVER"。思路:设算法执行X步,那么题目就变为求解A+CX ≡B(modM)(M=2^k)。即A+CX+MY ≡B。CX+
u011676797
·
2015-02-22 21:00
POJ 2115 C
Looooops
扩展GCD。。。一定要(1L 2#include 3#include 4 5usingnamespacestd; 6 7typedeflonglongintLL; 8 9inlineLLP(LLk){return(1LL<
u012797220
·
2014-11-04 11:00
poj2115--C
Looooops
(扩展gcd)
CLooooopsTimeLimit: 1000MS MemoryLimit: 65536KTotalSubmissions: 17740 Accepted: 4600DescriptionACompilerMystery:WearegivenaC-languagestyleforloopoftype for(variable=A;variable!=B;variable+=C) state
u013015642
·
2014-08-08 20:00
POJ 2115 C
Looooops
(扩展欧几里得应用)
题目地址:POJ2115水题。。公式很好推。最直接的公式就是a+n*c==b+m*2^k.然后可以变形为模线性方程的样子,就是n*c+m*2^k==b-a.即求n*c==(b-a)mod(2^k)的最小解。(真搞不懂为什么训练的时候好多人把青蛙的约会都给做出来了,这题却一直做不出来。。。。。这两道不都是推公式然后变形吗。。。。。)代码如下:#include #include #include #i
u013013910
·
2014-08-06 22:00
编程
算法
C语言
ACM
扩展gcd
POJ 2115 C
Looooops
题目:http://poj.org/problem?id=2115题意:对于C的for(i=A;i!=B;i+=C)循环语句,问在k位存储系统中循环几次才会结束。若在有限次内结束,则输出循环次数。否则输出死循环。思路:这道题是一个扩展欧几里德算法的拓展,求单变元模线性方程即:Cx=(B-A)(mod2^k) 扩展欧几里得算法和单变元模线性方程(传送门) +比较详细的博客代码:/* ID:wuqi9
SIOFive
·
2014-07-26 22:00
poj
扩展欧几里德算法
[ACM] POJ 2115 C
Looooops
(扩展欧几里得求解模线性方程)
CLooooopsTimeLimit: 1000MS MemoryLimit: 65536KTotalSubmissions: 17238 Accepted: 4462DescriptionACompilerMystery:WearegivenaC-languagestyleforloopoftype for(variable=A;variable!=B;variable+=C) stateme
sr19930829
·
2014-07-23 09:00
数论
ACM
扩展欧几里得
模线性方程
【数论】 POJ 2115 C
Looooops
设一个X,则X%(1 #include #include #include #include #include #include #include #include #include #include #include #definemaxn5005 #defineeps1e-10 #definemod1000000009 #defineINF99999999 #definelowbit(x)(x
blankcqk
·
2014-07-18 15:00
数论
poj
poj 2115 C
Looooops
(模线性方程)
http://poj.org/problem?id=2115题意:对于C的循环(fori=A;i!=B;i+=C)问在k位存储系统内循环多少次结束;若循环有限次能结束输出次数,否则输出 FOREVER;解:设x为循环次数; (A+C*x)%2^k=B;则C*x+A=2^k*y+B; 所以C*x-2^k*y=B-A;类似于a*x+b*y=c(或a*x=c(modb))模线性方程的形式,根据扩展欧几里
u013081425
·
2014-06-11 10:00
扩展欧几里得
模线性方程
poj 2115 C
Looooops
#include #include #include usingnamespacestd; typedeflonglongLL; voidEx_Gcd(LLa,LLb,LL&d,LL&x,LL&y) { if(b==0) { x=1; y=0; d=a; return; } else { Ex_Gcd(b,a%b,d,x,y); LLtemp=x; x=y; y=temp-(a/b)*y;
Hearthougan
·
2013-12-18 21:00
同余问题
poj 2115 C
Looooops
拓展欧几里德定理
题意:求x,使得(a+c*x)%2^k=b;题解:令n=2^k,则变换等式:c*x%n=b-a;再令b=b-a,a=c;就变成了a*x%n=b,一开始脑袋竟然混乱,将a*x想成了a^x,汗死。。。先介绍下拓展欧几里德定理:已知a和b,可以用拓展欧几里德定理求得一对整数(x,y),使得ax+by=gcd(a,b);接着讲解法:用拓展欧几里德定理求得ax+ny=d,d=gcd(a,b);两边同除以d,
a601025382s
·
2013-10-02 16:00
[poj 2115]C
Looooops
[扩展欧几里德][模线性方程]
题意:for(variable=A;variable!=B;variable+=C) statement;给出A,B,C和k(k表示变量是在k位机下的无符号整数),判断循环次数,不能终止输出"FOREVER".思路:需要求解 (A+x*C)%mod=B变形之后即 C*x+mod*y=B-A=gcd(C,mod)*[(B-A)/gcd(C,mod)]用扩展欧几里德定理需要求
zhangliang011258
·
2013-08-13 12:00
POJ 2115 C
Looooops
(扩展欧几里得)
CLooooopshttp://poj.org/problem?id=2115TimeLimit: 1000MSMemoryLimit: 65536KDescriptionACompilerMystery:WearegivenaC-languagestyleforloopoftype for(variable=A;variable!=B;variable+=C) statement;I.e.,a
synapse7
·
2013-08-12 21:00
POJ 2115 C
Looooops
CLooooopsTimeLimit:1000MS MemoryLimit:65536KTotalSubmissions:14193 Accepted:3547DescriptionACompilerMystery:WearegivenaC-languagestyleforloopoftype for(variable=A;variable!=B;variable+=C) statement;I
Magic____
·
2013-03-26 14:00
POJ 2115 C
Looooops
大意不再赘述。思路:简单的一元线性同余方程,有点KD,移位运算符强制转换行不通,必须用1LL #include #include #include #include #include usingnamespacestd; typedef__int64LL; LLA,B,C; intK; voidex_gcd(LLa,LLb,LL&d,LL&x,LL&y) { if(!b) { d=a;x=1
Wall_F
·
2013-01-01 23:00
POJ2115 C
Looooops
题目大意&&思路:B-A=C*x-2^k*y 扩展欧几里德好久没一血了。感懂~~~呜呜。ACprogram: #include #include #include #include #include usingnamespacestd; __int64exgcd(__int64a,__int64b,__int64&x,__int64&y) { __int64t,d; if(b==0) { x=1
kg_second
·
2012-09-22 23:00
POJ 2115 C
Looooops
~~~题目链接~~~题目大意:根据题中的c语言for循环表达式,判断这个循环要几次结束,或永远不结束,当内存达到上限时又从0开始。思路:与POJ1061一样,根据表达式(a+c*x)%1 #include voidgcd(__int64s1,__int64s2,__int64&d,__int64&x,__int64&y) { if(!s2){d=s1;x=1;y=0;} else{gcd(s2,s
ulquiorra0cifer
·
2012-08-05 18:00
POJ 2155 C
Looooops
来源:http://poj.org/problem?id=2115题意:就是说一个for循环,变量从a开始,每次增加c,问经过多少次增加能够(a+c*n)%2^k=b%2^k,即同余方程。经过变形后可以变成裸的扩展欧几里得思路:用扩展欧几里得解就可以了。。代码:#include #include #include usingnamespacestd; typedeflonglongll; llg
wmn_wmn
·
2012-07-28 19:00
poj 2115 C
Looooops
poj2115CLooooops 这个题目就是解线性同余方程,(a+n*c)%2的k次=b%2的k次。既然以前是学信安的,对数论本来就不排斥,最近还好好看了下算法导论。这个方程转换为n*c=(b-a)%2的k次。根据数论的知识, ax=b%n,需要保证gcd(a,n)|b,意思b是gcd(a,n)的倍数,这个一下子也很难解释清楚啊,不满足这个条件,就是没解了。还有,如果有解的话,解的个数就是d=
yx
·
2012-07-27 17:00
C
Looooops
&&http://poj.org/problem?id=2115
DescriptionACompilerMystery:WearegivenaC-languagestyleforloopoftype for(variable=A;variable!=B;variable+=C) statement;I.e.,aloopwhichstartsbysettingvariabletovalueAandwhilevariableisnotequaltoB,repea
smallacmer
·
2012-07-10 16:00
欧几里德 poj2115 C
Looooops
关于拓展欧几里德,别人已经写的很好的了,我也自己写一下,方便以后自己复习。其最基础的思想就是gcd(a,b)=gcd(b,amodb),其中gcd的意思是求最大公约数。。拓展欧几里德是用来求x,y是的a*x+b*y=gcd(a,b),---我们这样想对于a'=b,b'=a%b=a-(a/b*b), a*x+b*y=gcd(a,b)a'*x0+b'*y0=gcd(a',b')=gcd(a,b)=a
qq429205464
·
2011-11-11 18:00
POJ2115-C
Looooops
转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1309394009 大致题意:对于C的for(i=A;i!=B;i+=C)循环语句,问在k位存储系统中循环几次才会结束。若在有限次内结束,则输出循环次数。否则输出死循环。 解题思路:题意不难理解,只是利用了k位存储系统的数据特性进行循环。例如int型是16位的,那么int能保存2^16
lyy289065406
·
2011-07-31 16:00
c
算法
扩展
存储系统
poj 2115 C
Looooops
//推广的欧几里德算法#includeusingnamespacestd;__int64exgcd(__int64a,__int64b,__int64&x,__int64&y){ if(b==0) { x=1;y=0; returna; } __int64d=exgcd(b,a%b,x,y); __int64temp=x; x=y; y=temp-(a/b)*y; returnd;} int
birdforever
·
2010-08-27 19:00
上一页
1
2
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他