摘要: 开通博客园快一年半了,那是还是高二。现在大一都已经过了一个学期了,重新开始学习计算机,稍微在网上写点东西。 高一学习了一年的信息学竞赛,掌握了很多东西,这对我在大学的开始阶段也有着很大的帮助,使我可以很快的适应大学的学习,而不感到疲惫。 文笔拙劣,就不多说了。由于自己从Pascal转C++,... 阅读全文
posted @ 2016-01-27 10:56 菲星二号 阅读(120) 评论(0) 推荐(0)
 

2016年4月26日

摘要: 快速幂是很常见的一种高效算法,他有几个变体,下面记录一下。 特别注意,下面的快速幂和矩阵快速幂中,都要根据题目,处理好0^0的状态,不然都会得到1或者单位矩阵。 首先是标准的快速幂。 既然快速幂可以解决乘方运算的溢出问题,那么就有快速乘解决乘法运算的溢出问题。其实主要就是把乘法变成加法。 除此之外, 阅读全文
posted @ 2016-04-26 16:30 菲星二号 阅读(152) 评论(0) 推荐(0)
 

2016年4月19日

摘要: 其实我并不是要写排列组合什么的,我是来说说当n很大时,我们怎么快速处理出排列组合。 第一种想法,直接写,long long或者double,但是1000都上不去,那怎么办? 第二种想法,我们知道排列组合公式中,出现了阶乘,也就是“!”,对,从这里我们可以挖掘出一些性质。 性质1:n!标准分解式中质因 阅读全文
posted @ 2016-04-19 15:08 菲星二号 阅读(607) 评论(0) 推荐(0)
 

2016年4月18日

摘要: 写完扩展欧几里得就要顺便写一下中国剩余定理。 首先,什么是中国剩余定理:中国最早提出来的,又名孙子定理的一个求一次同余方程组的方法。 对,就长上面这个样子(这是百度百科复制的图片)。看起来很复杂,那要怎么求解呢? 中国剩余定理的最早版本是有所有m互质的前提的,所以就来讲一讲如何处理互质的情况。 令N 阅读全文
posted @ 2016-04-18 11:43 菲星二号 阅读(213) 评论(0) 推荐(0)
 

2016年4月17日

摘要: 扩展欧几里得挺早就会了,但是当时不会证明,现在可以自己推导出来了,下面说一下推导过程。 首先给你a,b,让你求出一组x,y,满足ax+by=gcd(a,b).这个gcd是很轻松可以得到的,但是x和y呢?其实我们也可以在求gcd的时候顺便得到一组解。 先看看我们是怎么求gcd的: 设ans=gcd(b 阅读全文
posted @ 2016-04-17 11:10 菲星二号 阅读(178) 评论(0) 推荐(0)
 

2016年4月7日

摘要: 写的第一个分治。 解决两边各自的最小值很简单,合并这里要有小处理。 模板题为hdu1007. 阅读全文
posted @ 2016-04-07 21:26 菲星二号 阅读(146) 评论(0) 推荐(0)
 

2016年3月4日

摘要: 刚学了匈牙利算法。匈牙利算法用来求解二分图最大匹配,通过邻接表(邻接矩阵也可以),dfs,就可以做到这点,是个高效的算法。 最小顶点覆盖:最大匹配/2。 最小路径覆盖:顶点数-最大匹配。 POJ1274为模板题。 #include <cstdio> #include <cstring> #defin 阅读全文
posted @ 2016-03-04 16:05 菲星二号 阅读(196) 评论(0) 推荐(0)
 
摘要: 研究一下,学习了个Graham-Scan求凸包的方法,主要用了排序,栈,还有叉积。下面是求周长和面积的模板。 #include <cstdio> #include <cmath> #include <algorithm> #define FOR(i,x,y) for(int i=x;i<=y;++i 阅读全文
posted @ 2016-03-04 11:05 菲星二号 阅读(250) 评论(0) 推荐(0)
 

2016年3月3日

摘要: 最近做题出现一种枚举方法,三分。跟二分类似,只是再分了一次。二分用来查找单调的数列或者别的什么,而三分可以用来求极值。比如一个先增大后减小的函数,可以用三分枚举得到极大值。 double tri_solve(double left,double right) { double mid,midmid, 阅读全文
posted @ 2016-03-03 22:53 菲星二号 阅读(208) 评论(0) 推荐(0)
 
摘要: 刚学了差分约束系统。 差分约束就是给你一堆不等式,求一个满足条件的解。比如x-y>=z,x-y<=z这些。对于大于等于的,我们可以转化为从y到x的单向最长路径,小于等于的则是最短路径。我们还要努力找到题目中的隐藏条件,或者自己建立一个原点什么的,这样才可以做。要注意的是,差分约束系统中通常会出现负数 阅读全文
posted @ 2016-03-03 17:53 菲星二号 阅读(177) 评论(0) 推荐(0)
 

2016年3月2日

摘要: 以下为百度百科的介绍(我把他们概括了一下): 1) 巴什博奕(Bash Game): 只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜. 2) 威佐夫博奕(Wythoff Game): 有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规 阅读全文
posted @ 2016-03-02 10:55 菲星二号 阅读(217) 评论(0) 推荐(1)