题意:给定一个数k,每次计算k的平方,然后截取最高的n位,然后不断重复这两个步骤,问这样可以得到的最大的数是多少? Floyd判圈算法:这个算法用在循环问题中,例如这个题目中,在不断重复中,一定有一个不断重复的过程,就是说出现的数字一定有一个周期, 这就是一个典型的循环问题.Floyd判圈算法的思想就是,例如两个小孩在一个圆形的操场上跑步,两个人以恒定的速度从同一个点出发,然后一个小孩跑步的 速度比另一个小孩的速度要快,很显然,一定的时间后,快一点的小孩一定会追赶一个循环之后追上跑的慢的那个小孩…
CALCULATOR CONUNDRUM Alice got a hold of an old calculator that can display n digits. She was bored enough to come up with the following time waster. She enters a number k then repeatedly squares it until the result overflows. When the result overflo…
CALCULATOR CONUNDRUM   Alice got a hold of an old calculator that can display n digits. She was bored enough to come up with the following time waster. She enters a number k then repeatedly squares it until the result overflows. When the result overf…
题意:有个老式计算器,每次只能记住一个数字的前n位.现在输入一个整数k,然后反复平方,一直做下去,能得到的最大数是多少.例如,n=1,k=6,那么一次显示:6,3,9,1... 思路:这个题一定会出现循环,所以一个个模拟,遇到相同的就再之前所有数中找最大的输出即可. 怎么判断遇到相同的呢?如果装在数组里一一比较显然很慢,如果用v[k]判断k是否出现过,k范围太大空间不够用. 第一种方法是使用STL里的set来判重. #include<cstdio> #include<set> us…
今天写线段树写到要用到这个算法的题目,简单的学习一下. https://blog.csdn.net/javaisnotgood/article/details/89243876 https://blog.csdn.net/wall_f/article/details/8780209 https://blog.csdn.net/qq_37025443/article/details/88852318 #include<iostream> #include<cstdio> #inclu…
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2544解题报告:小明有一个老式计算器,这个计算器只能显示n位数,现在小明输入一个数k,并且将这个数k一直做平方运算,当得到的结果大于n位的时候 ,这个计算器会自动取最高的n位,问这样一直进行下去能得到的最大的数是多少? 很显然,屏幕上显示的数会有一个周期,例如,当输入1 6 的时候,…
求[(5+2√6)2^x+1 ] mod p 的值,其中 0 ≤ x < 232 , p 是个质数,p ≤ 46337 .(这里介绍的是一种暴力的做法) (5+2√6)2^n+1 = an + bn·√6 ----©, (5-2√6)2^n+1 = an - bn·√6 ; 所以(5+2√6)2^n+1 + (5-2√6)2^n+1 = 2an ; 因为5-2√6<1 , 所以[(5+2√6)2^x+1 ] = 2an - 1 ; 然后(5+2√6)2^x+1 = (5+2√6) ·(an-1…
floyd判环算法(龟兔赛跑算法) 注意,这个算法是用来判断一条链+一条环的图,环的长度或者环与链的交界处的,所以此floyd非彼floyd(虽然都是一个人想出来的). (图不是我的) 如果只要求环的长度的话,只要让h和t相遇,然后再让h跑一圈,同时计算出步数就行了. 如果要算出链和环的交界点呢?首先,指针h和t同时从S出发,速度一个为2,一个为1(不要在意细节).当t走到链和环的交界点时,在右边的ht的距离等于st的距离.设st的距离为x,在左边的ht距离为y,那么环的长度就是x+y.现在让h…
https://vjudge.net/problem/UVA-11549 题意: 有一个老式计算器,只能显示n位数字,输入一个整数k,然后反复平方,如果溢出的话,计算器会显示结果的最高n位.如果一直这样做下去,能得到的最大数是多少? 思路: 这个肯定是会循环的. 比较普通的做法就是用set来判断是否出现过来终止循环. 另一个高效算法:Floyd判圈算法!! 想象一下,假设有两个小孩子在一个“可以无限向前跑”的跑道上赛跑,同时出发,但其中一个孩子的速度是另一个两倍.如果跑到是直的,跑得快的小孩永远…
这题标程是错的,网上很多题解也是错的. http://acm.hdu.edu.cn/showproblem.php?pid=4975 2014 Multi-University Training Contest 10 A simple Gaussian elimination problem. Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s)…