09 2017 档案

摘要:本题题意:关于式子aX + bY = 1 ,给出a、b,求X,Y(X为最小非负整数)。 代码如下: 这道题的题意是解一个同余模方程,aX + bY = 1代入exgcd(),可以得到结果x,y但是x可能是负数,因此最后要(x%b+b)%b,y同样也要处理(y%a + y)%y,d不等于1时,无解。 阅读全文
posted @ 2017-09-29 12:51 mtl6906 阅读(105) 评论(0) 推荐(0)
摘要:本题题意:两只青蛙,一只从x开始跳,每次跳m格,一只从y开始跳,每次跳n格,地球的线长为L米,问两蛙是否可能相遇,以及相遇的时刻。 代码如下: 这道题是一道标准的同余模方程,首先由题意列出(x+mt) - (y+nt) = lc,表示两者之差是L的倍数,也只有这种情况才能相遇。 然后化成(m-n)t 阅读全文
posted @ 2017-09-28 21:19 mtl6906 阅读(96) 评论(0) 推荐(0)
摘要:本题题意:求n! mod 2009,范围是0-10e9。 代码如下: 这道题乍一看,思路会很混乱,因为打表肯定不行,然后。。。这就得靠一个好习惯了,每次遇到mod的数都分解一下。 然后分解发现这个数的一对因子是41和49,这意味着,41以后的阶乘mod2009 都会是0,当然,我肯定也是打表发现的。 阅读全文
posted @ 2017-09-22 20:00 mtl6906 阅读(94) 评论(0) 推荐(0)
摘要:看了MIT的6.00的计算机科学导论课的第一节,其中,老师讲的一个sqrt的实现算法记忆犹新。 代码如下: 代码写的有点丑,效率可能也不会比库函数高(记得网上看到过有比库函数效率高的,不过你们自己去查把。。。),但是大致的思想还是很有收获的。 这个算法就是根据一个数的平方根的平方等于这个数来建立的。 阅读全文
posted @ 2017-09-22 19:27 mtl6906 阅读(394) 评论(0) 推荐(0)
摘要:本题题意:有N个人,一个人从1开始走,每次间隔M-1个人,问他是否能走到所有的点,并回到原点。 代码如下: 这道题是一道标准的求互素的题目,求出m和n的gcd,判断是否为1,即可,这道题IO比较大,用cout和scanf差了6倍的时间。 阅读全文
posted @ 2017-09-19 00:59 mtl6906 阅读(174) 评论(0) 推荐(0)
摘要:本题题意:给出一个公式n^3 + n^2*p = m^3,给定L,求出不大于L的满足该公式的p的个数。 代码如下: 这道题就是找规律,然后要注意除了满足该公式外还要满足p是素数,然后就对了。 阅读全文
posted @ 2017-09-18 23:28 mtl6906 阅读(123) 评论(0) 推荐(0)
摘要:本题题意:求长度为n的本元串的个数,本元串就是无法由几个相同的子串拼接的01串。 代码如下: 这道题第一眼看到的感觉就是打表,然而发现10e8太大,打了很久也没打出来,后来就只能直接去求了,好在一看,直接求的复杂度也不是特别高,然后就写了个递归,过了(第一发wa发现是没有特判n=1)。 这节学了个很 阅读全文
posted @ 2017-09-16 20:46 mtl6906 阅读(141) 评论(0) 推荐(0)
摘要:本题题意:给出公式f(n) = gcd(3) + ... + gcd(n),而gcd(n) = gcd(C(1,n),...,C(n-1,n)),求出f(n)的值。 代码如下: 通过打表发现当为p^k形式时(p为素数),gcd(n) = p,否则 gcd(n) = 1,然后就筛下素数,计算下和,结果 阅读全文
posted @ 2017-09-16 02:54 mtl6906 阅读(116) 评论(0) 推荐(0)
摘要:本题题意:给出N和k,求2008的2008的N次方的因子和次幂,是不是很绕。。。最后结果要取余k。 代码如下: 这题的唯一的问题就是250不一定有逆元,因此要把它留出来,最后除掉。 阅读全文
posted @ 2017-09-15 22:46 mtl6906 阅读(110) 评论(0) 推荐(0)
摘要:本题题意:给出公式a[i] = (A*a[i-1] + B*a[i-2]),输入A,B,n,求其第n项。 代码如下: 这道题真的挺坑的,主要是之前实在想不出来就去查题解,然后题解一眼望上去居然是错的,然后就纠结了两天,终于灵光一闪,打表给ac了。 阅读全文
posted @ 2017-09-15 17:52 mtl6906 阅读(145) 评论(0) 推荐(0)
摘要:本题题意:求2004^X的因子和。 代码如下: 这道题又是一个公式题,任意数n都能化成 p1^e1*p2^e2*...pn^en的形式,其中pi为第i个素数,ei为pi出现的次数,然后n又可以化成p1^e1*n'。(n'即除了p1外其他素数的乘积)。 阅读全文
posted @ 2017-09-13 17:19 mtl6906 阅读(83) 评论(0) 推荐(0)
摘要:本题题意:给出一个数n(只可能分解为2,3,5,7的素因子),求出其因子数。 代码如下: 根据一个数的因子数是其每个素数因子的数量加上1然后相乘,由于该数只有4个素因子,直接统计每个素因子出现的个数就出来了(没有出现过的要记1)。 阅读全文
posted @ 2017-09-13 15:03 mtl6906 阅读(120) 评论(0) 推荐(0)
摘要:本题题意:给一个数n,求出其因子和(包括1但不包括自身)。 代码如下: 这道题直接暴力枚举因子会超时,先枚举素数再判断可以降到500ms左右,然后。。。。又是这个神一般的倍数打表法。。最佳优化大概是124ms(评论区那个73ms的估计是人多的时候挤出来的,汗~)。 阅读全文
posted @ 2017-09-13 14:59 mtl6906 阅读(114) 评论(0) 推荐(0)
摘要:本题题意:给出一个数,求出其最大素数因子在素数中的位置. 代码如下: 这个代码感觉太神奇了,我自己写的一个就TLE了,上面这个代码的思路是先铺满2的倍数再铺满3的倍数,5的倍数依次。。然后最后得到的每个位置上就是最大因子的序号了。 阅读全文
posted @ 2017-09-12 20:19 mtl6906 阅读(228) 评论(0) 推荐(0)
摘要:本题题意:农夫和奶牛分别在数轴的两个点上,农夫可进行三种操作,将位置变为X+1,X-1,X*2,问最少几次操作后农夫能找到奶牛。 代码如下: 这道题挺简单的,bfs搜索+dp优化。 阅读全文
posted @ 2017-09-06 19:55 mtl6906 阅读(178) 评论(0) 推荐(0)
摘要:本题题意:给出一个三维迷宫,要求找出从起点到终点的最短路径。 代码如下: 这道题就是一个简单的最短路径搜索,只不过三维的话,方向就从4个变为了6个,最短路径毫无疑问就是bfs了,然后dp优化一下,时间复杂度就比较可观了。 攒板子很重要。。。 阅读全文
posted @ 2017-09-06 19:19 mtl6906 阅读(171) 评论(0) 推荐(0)