摘要:整体的思路是“快速幂取模算法”和“矩阵快速幂算法”的结合 F[0] = a1b0 F[1] = a0b1 F[2] = a1b1 F[3] = a1b2 F[4] = a2b3 F[5] = a3b5 F[6] = a5b8 ... 观察可知F[n] = af(n-2)·bf(n-1)其中f(n-1
阅读全文
摘要:在博客NYOJ 998 中已经写过计算欧拉函数的三种方法,这里不再赘述。 本题也是对欧拉函数的应用的考查,不过考查了另外一个数论基本定理:如何用欧拉函数求小于n且与n互质所有的正整数的和。 记euler(x)公式能计算小于等于x的并且和x互质的数的个数;我们再看一下如何求小于等于n的和n互质的数的和
阅读全文
摘要:首先观察: 2! = 2×1 = (2)10 = (10)2, 则第一个1是第2位,2!有1个质因数23! = 3×2×1 = (6)10 = (110)2, 则第一个1是第2位,3!有1个质因数24! = 4×3×2×1 = (24)10 = (11000)2, 则第一个1是第4位,4!有3个质因
阅读全文
摘要:这道题是欧拉函数的使用,这里简要介绍下欧拉函数。 欧拉函数定义为:对于正整数n,欧拉函数是指不超过n且与n互质的正整数的个数。 欧拉函数的性质:1.设n = p1a1p2a2p3a3p4a4...pkak为正整数n的素数幂分解,那么φ(n) = n·(1-1/p1)·(1-1/p2)·(1-1/p3
阅读全文
摘要:1.应该交代清楚,参加宴会的人不知道一共有多少顶帽子。假如知道有n顶帽子的话,第一次开灯看见有n-1只,自然就知道自己是第n顶黑帽子,所以应该是这n个人在第一次关灯就打自己脸,不过这么一来就没意思了,变成了数帽子游戏。 2.另一方面,题设输入输出案例中给出输入2,输出2。说明1中的分析的假设条件就是
阅读全文
摘要:这道题一开始本着很朴素的想法就是先输入两头的数据,然后对每组的数据范围下测试中间的数据即可,但是是超时的。原因也很明显,比如计算1~1000的数据之后,假如下一组数据是1~1001,本来只需要多测试下1001是否符合再加上前面的结果(1~1000)即可,而这种做法需要重复计算。 能够ac的处理方式是
阅读全文
摘要:奇数阶魔方 奇数阶魔方 这是一个找规律的题目: 所谓“右上方”就是数字更新的时候总是向右上方递增。从第一行中间位置开始遍历,赋为1. 如果当前位置是第一行(但不是最后一列),那么下一个位置就是下一列的最后一行(正如题目描述中的1之后的2);如果是最后一列(但不是第一行),那么下一个位置就是上一行的第
阅读全文
摘要:容斥原理 http://blog.csdn.net/shiren_bod/article/details/5787722
阅读全文
摘要:复杂度 复杂度 for(i=1;i<=n;i++) for(j=i+1;j<=n;j++) for(k=j+1;k<=n;k++) operation; 你知道 operation 共执行了多少次吗; 仔细观察就会发现,这里面的 i, j, k,... 等等,他们的开头处的取值完全不一样,这就好比有
阅读全文
摘要:月老的烦恼(1) 月老的烦恼(1) 月老最近遇到了一个很棘手的问题,就是“剩男”“剩女”急速增长,而自己这边又人手不足导致天天都得加班。现在需要你来帮助月老解决这个问题,牵红绳的规则很简单:每个男生都一个编号n(1<=n<=500000),编号n的因数之和就是要牵线的女生的编号。 如20的因子是:1
阅读全文
摘要:光棍节的快乐 光棍节的快乐 光棍们,今天是光棍节。聪明的NS想到了一个活动来丰富这个光棍节。 规则如下: 每个光棍在一个纸条上写一个自己心仪女生的名字,然后把这些纸条装进一个盒子里,这些光 棍依次抽取一张纸条,如果上面的名字就是自己心仪的女生,那么主持人就在现场给该女生打电话,告诉这个光棍对她的爱慕
阅读全文
摘要:Fibonacci数列(四) Fibonacci数列(四) 这道题首先考虑如何产生前4位: 先看对数的性质,logabc=c*logab ,loga(b*c)=logab+logac;假设给出一个数10234432,那么log10(10234432)=log10(1.0234432*107)【用科学
阅读全文
摘要:A*B Problem 描述 A*B Problem 描述 设计一个程序求出A*B,然后将其结果每一位相加得到C,如果C的位数大于等于2,继续将C的各位数相加,直到结果是个一位数k。 例如: 6*8=48; 4+8=12; 1+2=3; 输出3即可。 这道题目和之前的 http://www.cnbl
阅读全文
摘要:http://www.cppblog.com/RyanWang/archive/2009/07/19/90512.aspx?opt=admin 欧拉函数 E(x)表示比x小的且与x互质的正整数的个数。*若p是素数,E(p)=p-1。*E(pk)=pk-pk-1=(p-1)*pk-1证:令n=pk,小
阅读全文
摘要:大数取模算法: 这个又不同于幂取模算法,对于几百万位的数字取模,直接的方法是行不通的。最好利用数论的知识 (a*b)%c = ((a%c)*b)%c ;利用这个公式我们只要从n的一次方开始不断计算,乘于一个数同时就对其求余,这样就可以在不溢出的情况下得出最后的结果。 设bignum的个位数是x 设
阅读全文
摘要:快速查找素数 时间限制:1000 ms | 内存限制:65535 KB 难度:3 快速查找素数 时间限制:1000 ms | 内存限制:65535 KB 难度:3 快速查找素数 这道题目考察的是素数的筛法,不过需要注意的点就是如何写筛法.下面的一种是超时的写法: 先用筛法求出规定的大小内的所有的素数
阅读全文
摘要:九的余数 时间限制:3000 ms | 内存限制:65535 KB 难度:3 九的余数 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在给你一个自然数n,它的位数小于等于一百万,现在你要做的就是求出这个数整除九之后的余数。 解答: 解答: 首先本题的思路首先可以发现如果
阅读全文
摘要:思路1: 找规律,本题若是直接暴力搜索,就是f(n)=2^n-1,然后f(n)%1000000,那么结果会越界;所以考虑用f(n+1)=(2*f(n)+1)%1000000,不过遇到较大数据的时候,会出现超时的情况,毕竟这个结果是线性时间增长的,和输入数据体量的大小有直接关系,所以这里还需要再次考虑
阅读全文
摘要:描述:给定两个数n,m,其中m是一个素数。 将n(0<=n<=2^31)的阶乘分解质因数,求其中有多少个m。 注:^为求幂符号。 输入: 第一行是一个整数s(0<s<=100),表示测试数据的组数 随后的s行, 每行有两个整数n,m。 输出: 输出m的个数 样例输入 3 100 5 16 2 100
阅读全文