- 博客(15)
- 资源 (6)
- 收藏
- 关注
原创 HDOJ-1787-GCD Again 解题报告
求欧拉函数单值,水题。题意:给你一个数n,求出大于0小于n的正整数中与n的最大公约数大于1的数的个数。 我的解题思路:与n的公约数大于1的数的个数就是与n不互素的数的个数。这里有个坑,首先就是小于n,因此输出应该是n - 1 - phi(n)。 我的解题代码:#include #include #include #include #inc
2015-01-31 18:17:37 622
原创 POJ-2407-Relatives 解题报告
水题,求欧拉函数单值。题意:给一个不超过10亿的数,算出不大于它且与它互素的正整数个数,就是求它的欧拉函数值。 我的解题思路:没什么好说的,就是求欧拉函数单值,数据不多,不需要打欧拉函数表。 我的解题代码:#include #include #include #include #include #include using name
2015-01-31 17:20:46 636
原创 UVaOJ-11752-The Super Powers 解题报告
不错的思考题,可找规律。人生第一次真正意义上的写证明。题意:如果一个数是两个不同的数的幂,那么这个数就称之为超级幂,比如64 = 8^2 = 4^3。因此64是一个超级幂。没有输入,请输出0到2^64-1范围内的所有超级幂。 我的解题思路:首先要找出超级幂的规律,根据样例明显会看出来超级幂不能算本身的1次幂,我们试着把数都分解成幂形式来看(1特殊)。16 = 2^4 =
2015-01-26 17:46:07 865
原创 UVaOJ-10200-Prime Time 解题报告
跟判断素数有关的题。题意:有这样一个公式,n^2 + n + 41,当0 39时这个公式的值有可能不是素数了,不过已知n 我的解题思路:反正n = 10000时公式的值还没有超过int范围,先将10002以内范围的素数都筛出来,然后用来判断区间内公式的值是否为素数,反正也就最多10000次判断,存储为前缀和的形式,最后根据输入的左右端点直接输出就行了。注意:比较坑的是四
2015-01-25 17:07:55 746
原创 POJ-3070-Fibonacci 解题报告
矩阵快速幂。人生第一次真正意义上写的矩阵快速幂题目啊!题意:Fibonacci数列的第0项为0,第1项为1,第2项也为1,此后第n项等于第n-1项与第n-2项的和。现在给你n,请你输出这个Fibonacci数列第n项的值的后4位数字(即对10000取模的结果)。 我的解题思路:标准矩阵快速幂,首先可以构造一个1×2的初值矩阵[ f(0) f(1) ],然后可以构造这样一个2
2015-01-24 18:44:11 736
原创 UVaOJ-10168-Summation of Four Primes 解题报告
哥德巴赫猜想推广。题意:给一个数,如果它能被分解成四个素数的和,那么输出这四个素数,如果不能,输出指定信息。 我的解题思路:由于一个大于2的偶数能够被分解成两个素数的和,因此可以推出一个大于8的数必定能分解成4个素数的和。首先如果这个大于8的数是偶数,那么它能够被分解成两个偶数的和,再把这两个偶数根据哥德巴赫猜想分解,如果是奇数的话,那么它必定能分解成2,3和一个偶数的和,
2015-01-23 20:45:12 749
原创 POJ-2262-Goldbach's Conjecture 解题报告
验证哥德巴赫猜想。题意:任何一个大于4的偶数都能写成两个奇素数的和。现在给你一个大于等于6的数n,请你分解成n = a + b的形式,并且a和b都是奇素数,如果有多组分解形式,要求输出b - a最大的那种。如果不能够分解,输出指定的信息。 我的解题思路:首先,根据计算机科学家运行的结果,在ACM的世界里(64位整型范围内),哥德巴赫猜想是成立的,所以一定能够分解。因此将范围
2015-01-23 20:01:58 751
原创 UVaOJ-10791-Minimum Sum LCM 解题报告
分解质因数题。题意:现在给你一个数,然后请你找到两个或两个以上的数,使得它们的最小公倍数是给你的这个数,要求你找到的几个数的和尽量小,输出这个和。 我的解题思路:看起来很难的样子,这里涉及到求最小公倍数的原理。在几个数里面求最小公倍数,要把这几个数都分解不同的质因数,将每一个质因数次数最大项相乘就得到了这几个数的最小公倍数。比如:求108,28和42的最小公倍数,108 =
2015-01-23 10:54:24 726
原创 POJ-1142 & HDOJ-1333 Smith Numbers 解题报告
分解质因数题。题意:所谓史密斯数就是说这个数分解成质因数后每一个质因数各个数位上的数字之和相加的结果与这个数各个数位上的数字之和相等,并且这个数不能是质数。现在给你一个不超过8位的数字n,求出大于n的最小史密斯数。 我的解题思路:分解质因数后判断就行了,注意素数不是史密斯数,另外因为给的是不超过8位的数字,所以但给的数字是99999999的时候答案是会超过八位的,因此计算数
2015-01-22 19:09:29 805
原创 UVaOJ-10539-Almost Prime Numbers 解题报告
筛素数好题。题意:几乎是素数的数是这样一种数,它不是素数,但是它只有一个素因子。比如:4,8,9等。现在给你一个区间,让你统计区间内几乎是素数的数的个数。 我的解题思路:这个区间范围很大,右端点可以达到10的12次方。分析一下可以知道几乎是素数的数是素数的n次方(n > 2)。因此筛素数的范围到10的6次方就可以了。因为区间范围大,但是统计的数却不多,因此我们可以把最大范围
2015-01-21 14:19:23 776
原创 UVaOJ-11827-Maximum GCD 解题报告
求多个数最大GCD,数据小,优化无用武之地。题意:给你若干个整数,对任意两个整数的最大公约数求最大值并输出。 我的解题思路:首先给你n个测试样例,但是每个测试样例里面有多少个数不知道,所以这里要用字符串处理掉。数据不大,暴力应该也是可行的。如果测试样例的数据比较大的话可以这样优化,先给这一组数降序排序,然后开始从大到小枚举,如果枚举的数不大于当前已知的最大GCD,那么就可以
2015-01-21 11:49:13 751
原创 POJ-1411 & HDOJ-1239 Calling Extraterrestrial Intelligence Again 解题报告
筛素数并且需要优化技巧的题,当然暴力貌似也能过,不推荐暴力。题意:很简单,给你三个正整数m,a,b(其中4 1 )。现在让你找到两个素数p和q,使得pq 我的解题思路:如果是暴力的话筛出m最大值以内的素数然后开始从小到大枚举p的值就是了,很明显q必定大于等于p。我初步优化的话通过a/b 我的解题代码:#include #include
2015-01-20 11:00:13 847
原创 LA-3399 & POJ-2739 Sum of Consecutive Prime Numbers 解题报告
素数水题。题意:给你一个不大于一万的整数n,求有多少种方案可以把n写成若干个连续素数的和。 我的解题思路:把不大于一万的素数都筛出来,存储成前n个素数的和这样的形式。然后枚举每一个方案,把对应方案的和方案次数加一就可以了。存储好一万个数的答案。如果说一万以内的素数个数是k,那么这个枚举的复杂度是O((1+k)*k/2)。也就是k平方的复杂度,时间是够了。0ms水过。
2015-01-19 13:24:30 767
原创 LA-3883 & POJ-3518 Prime Gap 解题报告
筛素数的水题。题意:给一个整数n,求n后一个素数和前一个素数的差值,如果n是素数时输出0。 我的解题思路:数据范围不太大,不过为了保险起见还是要离线处理。筛出范围内的素数表,然后就可以一次性算出所有数的答案,保存起来,这样查询速度会很快。 我的解题代码:#include #include #include #include #includ
2015-01-19 10:40:17 837
原创 HDOJ-2136-Largest prime factor 解题报告
不错的筛素数题。题意:任何数都可以分解成素数的乘积,现在你的任务是告诉过我一个数的最大素因子在素数表里面的位置,比如2的位置是1,3的位置是2,5的位置是3,等等。当然了,特殊情况1的最大素因子在素数表的位置是0。 我的解题思路:看样例明显是多组测试数据,数据范围又达到了100W,有一种这题要离线的直觉。果然,我第一次做先筛出素数表,然后针对每一个数来根据素数表算最大素因子
2015-01-13 14:42:57 942
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人