2016年2月23日

摘要: 欧拉定理:若n,a为正整数,且n,a互质,则有aΦ(n)≡1(mod n),这里Φ(n)为n的欧拉函数。 费马小定理:ap-1≡1(mod p),p为质数。这里我们发现,费马小定理是欧拉函数的一个特例。 欧拉函数怎么求呢? 1)若p为素数,则Φ(p)=p-1;若n=pk,则Φ(n)=pk-pk-1。 阅读全文
posted @ 2016-02-23 21:14 菲星二号 阅读(234) 评论(0) 推荐(0)
 

2016年2月21日

摘要: 树状数组是一个很简单好用的数据结构。 功能主要:区间求和,更新大小。 我们只要把原来的a数组通过不断update到c数组(即树状数组),之后就可以通过O(longn)的复杂度进行查询和更新了。 hdu1166为模板题。 #include <cstdio> #include <cstring> #de 阅读全文
posted @ 2016-02-21 13:01 菲星二号 阅读(155) 评论(0) 推荐(0)
 

2016年2月14日

摘要: 米勒拉宾素数测试可以快速测出单个数是否为素数。 首先需要知道定理: 1. 费马小定理: ap-1≡1(mod p) 其中p为质数 于是,当有一个数n,先判断是不是1,2,3以及2,3的倍数(可以删掉大量数据),此时剩下的都是奇数。 令n-1=2rd,取不同的a,对r从0到最大,满足ad≡1(mod 阅读全文
posted @ 2016-02-14 12:22 菲星二号 阅读(1463) 评论(0) 推荐(1)
 

2016年2月13日

摘要: 这里记一下STL的队列和栈。 队列。 头文件<queue>,操作有pop,push,front,empty,size,back,声明是queue<数据类型>q。 更有用的是优先队列。 头文件同队列,操作有pop,push,top,empty,size,声明是priority_queue<数据类型>q 阅读全文
posted @ 2016-02-13 17:01 菲星二号 阅读(200) 评论(0) 推荐(0)
 

2016年2月12日

摘要: 最短路是图论的基础部分。其中学过4个主要算法,分别是Floyed,Dijkstra,Ford,SPFA。SPFA作为Ford的队列实现,有一定的优化,因此就不说Ford了。 首先两点间距离读取都是一样的。 memset(f,0x3f,sizeof(f)); for(int i=1;i<=n;++i) 阅读全文
posted @ 2016-02-12 21:26 菲星二号 阅读(178) 评论(0) 推荐(0)
 

2016年1月27日

摘要: 背包问题是动态规划的基础,也是最易理解的动态规划,有著名的背包九讲可以查询,我就稍微写一下。 1. 01背包 这个是最基础的背包,即这个物品只有一件,只需确定放还是不放即可。 二维状态转移方程:f[i,x]=max{f[i-1,x],f[i-1,x-c[j]]+w[j]} 一维状态转移方程:f[x] 阅读全文
posted @ 2016-01-27 12:00 菲星二号 阅读(251) 评论(0) 推荐(0)
 
摘要: 开通博客园快一年半了,那是还是高二。现在大一都已经过了一个学期了,重新开始学习计算机,稍微在网上写点东西。 高一学习了一年的信息学竞赛,掌握了很多东西,这对我在大学的开始阶段也有着很大的帮助,使我可以很快的适应大学的学习,而不感到疲惫。 文笔拙劣,就不多说了。由于自己从Pascal转C++,... 阅读全文
posted @ 2016-01-27 10:56 菲星二号 阅读(120) 评论(0) 推荐(0)