摘要:
Miller_Rabin素数测试 Miller_Rabin判断单个素数的方法运用了费马小定理,可以说非常之快了。 Miller_Rabin曾经被称作“黑科技”,但是根据费马小定理其实完全可以自己写出来大半。 其算法的运行过程如下: (1)对于奇数M,使得N=(2^r)*M+1 (2)选取随机数使得A 阅读全文
摘要:
Catanlan Number 卡特兰数,又称卡塔兰数(Catanlan Number),是一个非常多见、高深的数列。它能解决我们数论题目中一些计数问题。前几项为:1,2,5,14,42,132,429,1430,4862,16796,58786…… 那么如何求Catanlan Number的第N项 阅读全文
摘要:
逆元 我们定义:若a*x同余1(MOD b) 那么则称x为a的逆元,可以记作a^(-1) 那么怎么求解逆元呢? 我们可以假设a*x+b*y=1,这个式子在原来MOD b的意义下并没有发生本质的改变 因为当把这个式子MOD b后,a*x这项我们假设不能被整除,但是b*y这一项有b,所以在全式MOD b 阅读全文
摘要:
扩展欧几里得 上回刚写完欧几里得,那现在还有一个东西叫拓展欧几里得: 扩展欧几里得法是一个在求解同余方程等问题上的一个很好的方法,其具体功能如下: 在已知(a,b)时,求解一组(p,q)使得p*a+q*b=GCD(a,b) 首先,根据数论中的原理,解一定是存在的。 我们可以设a对于GCD(a,b)的 阅读全文
摘要:
二进制GCD GCD这种通用的算法相信每个OLER都会 ,辗转相除,代码只有四行 : GCD算法使通过辗转相除法来求解两个数的最大公因数,又称欧几里得算法 可以知道:GCD(x,y)=GCD(x,y-x) 我们将b能被a整除记作a|b 那么假设z是最大公因数,那么有: 如果z|x,z|y,则z|(y 阅读全文
摘要:
莫比乌斯函数 莫比乌斯函数!?提到这个东西你会不会想到一个大神级的玩意:莫比乌斯反演 莫比乌斯函数其实很简单,非常非常简单…… 好了,步入正题吧…… 我们定义一个函数M,参数为x,函数内容如下: X=X1^P1*X2^P2*……*Xa^Xk 那么这个式子到底是用来干什么的呢? 我们使X1、X2、X3 阅读全文
摘要:
斜率优化 入门题:PKU3709 很多人貌似都是做这道题来K斜率优化的,所以看了资料以后还是开始入手吧。 然而还是得跪求大神的程序啊 ORZ ORZ…… 其实理解斜率优化就是会列斜率不等式,还要理解剔除过程。 那么我们来看看这道题: K-Anonymous Sequence Time Limit: 阅读全文
摘要:
最短路计数 【问题描述】 给出一个N个顶点M条边的无向无权图,顶点编号为1~N。问从顶点1开始,到其他每个点的最短路有几条。 【输入格式】 输入第一行包含2个正整数N,M,为图的顶点数与边数。 接下来M行,每行两个正整数x, y,表示有一条顶点x连向顶点y的边,请注意可能有自环与重边。 【输出格式】 阅读全文
摘要:
NOIP201504推销员 【问题描述】 阿明是一名推销员,他奉命到螺丝街推销他们公司的产品。螺丝街是一条死胡同,出口与入口是同一个,街道的一侧是围墙,另一侧是住户。螺丝街一共有 N 家住户,第 i 家住户到入口的距离为 Si 米。由于同一栋房子里可以有多家住户,所以可能有多家住户与入口的距离相等。 阅读全文
摘要:
正方形大阵 【问题描述】 【输入格式】 第一行一个正整数n代表询问次数。接下来n行每行一个不超过八位的小数k代表一组询问。 【输出格式】 输出共n行,代表每次询问的答案;如果有无数个交点,输出“-1”。 【输入样例】 【输出样例】 【数据规模与约定】 100%的数据满足1<=n<2*1000,0<k 阅读全文
摘要:
二分查找 二分法?多简单?NO!NO!NO!我们可不是讲俗透顶的二分查找!我们讲的是二分查找的应用! 我们讲的也不是二分答案,是优化。 你真的会充分地用二分查找吗? 事实告诉你:含序列题目并可以暴力等求出答案的,基本上二分查找都是可以将其优化的! 不信?咱们来看看一道简单的排序: MZA 的排序 【 阅读全文
摘要:
咏叹 By C_SUNSHINE 【试题描述】 Salroey拿到了一个1~n的排列A,她想对这个排列进行冒泡排序: counter=0 While A不是升序的 counter=counter+1 For i=1 to n-1 If A[i]>A[i+1] Then Swap(A[i],A[i+1 阅读全文
摘要:
心上人 【问题描述】 人到初三,总会遇到情感问题,比方说小 J 就喜欢上了小 W。于是小 J 就需要说一长串的话讨小 W 欢心。现在已知小 W 听到一些词就会很高兴,而且白听不厌,但她又讨厌小 J 说的话的长度短于或长于她所期望的。所以小 J 只能说一个长度为 L 的字符 串,并使小 W 喜欢的词在 阅读全文
摘要:
小奇挖矿2 【题目背景】 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿石交易市场,以便为飞船升级无限非概率引擎。 【问题描述】 现在有m+1个星球,从左到右标号为0到m,小奇最初在0号星球。 有n处矿体,第i处矿体有ai单位原矿,在第bi个星球上。 由于飞船使用的是老式 阅读全文
摘要:
工资 【试题描述】 聪哥在暑假参加了打零工的活动,这个活动分为n个工作日,每个工作日的工资为Vi。有m个结算工钱的时间,聪哥可以自由安排这些时间,也就是说什么时候拿钱,老板说的不算,聪哥才有发言权!(因为聪哥是土豪,他是老板的老板) 聪哥不喜欢身上一次性有太多的钱,于是他想安排一下拿钱的时间,使他一 阅读全文
摘要:
关于博客装修的说明 各位读者:近期博客正在装修中,将排查水题题解和BUG并删除,如果有时访问不到或者页面混乱请谅解。谢谢大家! 阅读全文
摘要:
分块算法 1.思想 如果我们需要对一个特定的序列进行操作,那么非常直观、简单的方法就是纯暴力(不,那叫模拟)。 不过如果暴力能过的话,那就呵呵了。 所以我们要想一些比较高能的数据结构——分块。 相比线段树来说,分块算法比较难实现,但是只要深入理解,就可以实现了,只不过需要一些数据结构的辅助。 分块实 阅读全文
摘要:
考试笔记 2016.08.13 第一题:纸条(就是给出一个字符串,求对任意字符串最短不重复长度) 在灵机一动之后,随便yy了一个暴力,100分,代码如下: 第二题:花园(问割掉几条边才能使图无环) 这题据说是森林,不会…… 第三题:数对(给出N个数字,只要其中有数字相同就ans+1) 输入时作为字符 阅读全文
摘要:
HD201404最短路径 【试题描述】 a、b、c是3个互不相等的1位正数,用它们和数字0可以填满一个n行n列的方格阵列,每格中都有4种数码中的一个。填入0的格子表示障碍物,不能属于任何路径。你是否能找出一条从1行1列出发,到达n行n列且代价最小的路径呢?注意:每一格只能走向与之相邻的上、下、左、右 阅读全文
摘要:
建立联系 【试题描述】 新学期开始了,不料同学们在假期集体更换了电话,所以同学们只能重新建立联系。 班内一共有n位同学,他们一共建立了m次联系,老师想知道在同学们每次建立完一个联系后,一共有多少对同学可以互相联系。 【输入要求】 第一行有两个数n和m,表示有n位同学和m次操作。以后m行,每行两个数a 阅读全文
摘要:
投票问题(一) 【试题描述】 欧阳文和欧阳武竞选学联主席,汪梁森负责唱票,共有m+n张,结果欧阳文获胜,已知欧阳文和欧阳武分别获得 m 张票和 n 张票(m>n)。现在请你计算在唱票过程中欧阳文的票数始终比欧阳武票数多的方案有多少种。 【输入要求】 一行,包括两个数,分别为 m 和 n 【输出要求】 阅读全文
摘要:
7月份学习笔记 一转眼,又是一个月了,离NOIP只剩下短短2个月了,还是继续刷比赛,写博客吧…… 这周五终于迎来了“考试月”的最后一节课,收获满满。 第一场比赛在16号左右,题目变态,最高的大神得了220分,剩下的100分就很厉害了…… 第二场比赛在25号,简单如水,这两次难度差太大,两个大神满分, 阅读全文
摘要:
Flody 大家都知道这个最终模版: 那大家知道这个模版是怎么得出的吗? 核心思路:动态规划。 初始版本: 初始数组:dis(三维数组) dis[i][j][k]表示i号到j号(只经过1~k号点)的路径 dis[i][j][0]=a[i][j](输入的数组)。 dis[i][j][n]表示从i到j可 阅读全文
摘要:
SPFA模版 单源:假设1为起点,适合于稀疏图,O(边数) BFS求一个问题入队一次 SPFA入队多次,更加适合求两点之间的最短路,空间少,时间也少,但是如果求多源最短路还是建议大家用Floyd算法 阅读全文