ACM_算法精讲
文章平均质量分 70
_天道酬勤_不忘初心
这个作者很懒,什么都没留下…
展开
-
欧拉函数
定义:在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。 从欧拉函数引伸出来在环论方面的事实和拉格朗日定理构成了欧拉定理的证明。简介:φ函数的值 通式:φ(x)=x(1-1/p1)(1-1/p2)(1-原创 2015-08-28 23:07:22 · 524 阅读 · 0 评论 -
位运算
a a >> x 相当于a除以2的x次方a | 1 相当于a+1(2个数按位或,只要有一个位上是1,即为1)a & 1 判断a是奇数还是偶数,1是奇数,0,是偶数(2个数按位与,必须2个位上都为1,才为1,否则为0),比用%判断奇偶快原创 2016-03-04 11:47:09 · 236 阅读 · 0 评论 -
埃拉托色尼筛选法求素数
算法的思想很简单,找一张表,先把1划掉,然后在把2的倍数划掉,接着找下一个没有被划掉的数,是3,接着把3的倍数划掉,接着找下一个没有被划掉的数,是5,接着把5的倍数划掉,接着找下一个没有被划掉的数,依次类推#include #include #include #include #include #include #include #include #include #incl原创 2016-03-19 08:09:26 · 790 阅读 · 0 评论 -
中国剩余定理
原文地址:http://www.cnblogs.com/walker01/archive/2010/01/23/1654880.htmlPOJ1006: 中国剩余定理的完美演绎问题描述 人自出生起就有体力,情感和智力三个生理周期,分别为23,28和33天。一个周期内有一天为峰值,在这一天,人在对应的方面(体力,情感或智力)表现最好。通常这三个周期的峰值不会是转载 2016-03-22 20:34:43 · 397 阅读 · 0 评论 -
各种好博客
poj 1679 The Unique MST 【次小生成树】【模板】分类: 图论 2014-11-04 10:11 508人阅读 评论(0)收藏 举报algorithmnetworkpoj次小生成树最小生成树题目:poj 1679 The Unique MST题意:给你一颗树,让你求最小生成树和次小生成树值是否相等。分析:这个题目关原创 2015-10-21 12:36:11 · 483 阅读 · 0 评论 -
SPFA 算法详解( 强大图解,不会都难!)
原文链接:http://lib.csdn.net/article/datastructure/10344适用范围:给定的图存在负权边,这时类似Dijkstra等算法便没有了用武之地,而Bellman-Ford算法的复杂度又过高,SPFA算法便派上用场了。 我们约定有向加权图G不存在负权回路,即最短路径一定存在。当然,我们可以在执行该算法前做一次拓扑排序,以判断是否存在负权回路,但这不是我们讨论...转载 2016-03-11 19:40:57 · 2609 阅读 · 4 评论 -
扩展欧几里得算法
原文地址:http://blog.csdn.net/zhjchengfeng5/article/details/7786595 扩展欧几里德算法 谁是欧几里德?自己百度去 先介绍什么叫做欧几里德算法 有两个数 a b,现在,我们要求 a b 的最大公约数,怎么求?枚举他们的因子?不现实,当 a b 很大的时候,枚举显得那么的naïve ,那转载 2016-03-22 21:07:03 · 289 阅读 · 0 评论 -
模板1
并查集(1)int find(int x){ return x == pre[x] ? x : pre[x] = find(pre[x]);}void join(int x,int y){ int fx = find(x); int fy = find(y); if(fx != fy) pre[fx] = fy;}(2)求最大秩的集原创 2016-04-09 21:22:22 · 391 阅读 · 0 评论 -
模板2
最小生成树(Prim,Kruskal)求城市的最小生成树,城市标号是从0到n-1,注意重边和不能构成的情况const int zui = 1000000000;int n,m;int map1[1010][1010];int lowdist[1010];int visit[1010];int sum;bool flag;void Prim(){ int i,j,k原创 2016-04-10 09:50:19 · 324 阅读 · 0 评论 -
训练赛总结
A(HDU 1877)题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1877思路:简单的进制转换,由于没有特判0,wrong了AC代码:#include #include #include #include #include #include #include #include #include #include原创 2016-04-18 15:33:13 · 476 阅读 · 0 评论 -
郑轻校赛总结
2个经验(1)把简单题想成难题,不愿动脑(2)和队友交流太少1882: 蛤玮的魔法思路:用相似求比率,都是泪啊,用三角函数时注意里面要用弧度制AC代码:#include #include #include #include #include #include #include #include #include #include #include const原创 2016-04-18 18:55:30 · 464 阅读 · 0 评论 -
郑轻新生校赛和中工选拔赛题解
A:题目地址:点击打开链接思路:有没有换行符都能过AC代码:#include #include #include #include #include #include #include #include #include #include #include typedef long long ll;using namespace std;int mai原创 2015-12-26 17:45:13 · 553 阅读 · 0 评论 -
输入输出流总结
本人流具体的情况还不太了解,有个模糊的认识,以后会不断更新输入流:相当于把一根水管捅到程序上,你输入的所有东西都会放到依次放到管道里,输出流:这是捅到程序上的另一根水管,他计算出来的东西全放到这里面,>>相当于你从水管取东西scanf()以回车表示输入结束举个例子cin>>a>>b;相当于你往流里放了一个a,一个空格,一个b,一个出车;#include #includ原创 2015-12-27 12:57:57 · 486 阅读 · 0 评论 -
BFS,Dijkstra,Floyd,DP求解最短路径问题
Dijkstra,Floyd就不说了,这种算法的用途是求解单源最短路径,举个例子,用这两个算法可以求出0到1.2.3.4的最短路径,可是我只需要你求0到3的最短路径,这时你就可以用DP了,为啥要扯上搜索,是因为权值为1的最短路就是搜索粘一个用DP求最短路径的链接:http://wenku.baidu.com/link?url=uaaG3egZKZtEiUiSWtlK原创 2015-11-28 22:23:43 · 2507 阅读 · 0 评论 -
并查集详解
并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,杭电1232畅通工程首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点转载 2015-07-22 16:28:03 · 438 阅读 · 0 评论 -
背包问题九讲
在此感谢Tianyi Cui大神的辛苦劳动,因为下载的资料,没有原文地址,就不粘贴地址了前言 目录 第一讲 01背包问题 第二讲 完全背包问题 第三讲 多重背包问题 第四讲 混合三种背包问题 第五讲 二维费用的背包问题 第六讲 分组的背包问题 第七讲 有依赖的背包问题 第八讲 泛化物品 第九讲 背包问题问法的变化 附录一:USACO中的背包问题转载 2015-08-03 17:56:06 · 477 阅读 · 0 评论 -
快速幂取模法
代码详解 long long quickmod(long long a,long long b,long long m){ long long ans = 1; while(b)//用一个循环从右到左遍历b的所有二进制位 { if(b&1)//判断此时b[i]的二进制位是否为1 { ans = (ans*a)%m原创 2015-08-08 12:04:39 · 707 阅读 · 0 评论 -
组合数与母函数
母函数与排列组合 在谈论母函数问题之前,我们先看一个简单的问题描述:假如有两组数据(A,B)和(C,D),每组中选出一个构成一个组合,总共有几种选法?很显然总共有4种选法:AC,AD,BC,BD。而且很容易联想到这个式子(A+B)*(C+D)=A*C+A*D+B*C+B*D。式子中的几个乘积项就是上面的4种选法。假如把问题换一下:每组中选出一个或0个数据构成组合,总共有几种组合?那么结果转载 2015-07-07 15:27:00 · 843 阅读 · 0 评论 -
KMP算法详解
原文地址:点击打开链接相信很多人(包括自己)初识KMP算法的时候始终是丈二和尚摸不着头脑,要么完全不知所云,要么看不懂书上的解释,要么自己觉得好像心里了解KMP算法的意思,却说不出个究竟,所谓知其然不知其所以然是也。 经过七八个小时地仔细研究,终于感觉自己能说出其所以然了,又觉得数据结构书上写得过于简洁,不易于初学者接受,于是决定把自己的理解拿出来与大家分享,希望能抛砖转载 2015-09-10 10:50:30 · 282 阅读 · 0 评论 -
网络流增广路入门很好的文章
原文地址:点击打开链接因为是初学教程,所以我会尽量避免繁杂的数学公式和证明。也尽量给出了较为完整的代码。本文的目标群体是网络流的初学者,尤其是看了各种NB的教程也没看懂怎么求最大流的小盆友们。本文的目的是,解释基本的网络流模型,最基础的最大流求法,即bfs找增广路法,也就是EK法,全名是Edmond-Karp,其实我倒是觉得记一下算法的全名和来历可以不时的拿出来装一装。转载 2015-09-06 10:10:45 · 389 阅读 · 0 评论 -
字典树
原文地址:点击打开链接字典树(讲解+模版)又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。 字典树与字典很相似,当你要查一个转载 2015-09-06 21:30:50 · 212 阅读 · 0 评论 -
Manacher算法--O(n)回文子串算法
原文地址:点击打开链接参考资料地址:点击打开链接O(n)回文子串算法注:转载的这篇文章,我发现下面那个源代码有点bug。。。在下一篇博客中改正了。。 这里,我介绍一下O(n)回文串处理的一种方法。Manacher算法.原文地址:http://zhuhongcheng.wordpress.com/2009/08/02/a-simple-li转载 2015-09-07 17:41:13 · 289 阅读 · 0 评论 -
数据范围
原文地址:点击打开链接找了一天的bug竟然是两个int乘积超了int的范围,悲催!!将int转为了__int64吧!!1.各整型范围:unsigned int 0~4294967295 int 2147483648~2147483647 unsigned long 0~4294967295long 2147483648~2147483647l转载 2015-10-17 14:17:48 · 349 阅读 · 0 评论 -
拓扑排序
原文地址:点击打开链接拓扑排序就是把一个图的所有节点排序,使得每一条有向边(u,v)对应的u都排在v的前面。 拓扑排序的一个用途就是判断一个有向图是否有环。 性质1、拓扑排序在有向无环图中才能排出有效的序列,否则能判断该有向图有环。2、如果输入的有向图中的点,不存在入度为0的点,则该有向图存在回路3、如果存在的入度为0的点大于一个,则该有转载 2015-09-15 10:33:24 · 423 阅读 · 0 评论 -
博弈入门
博弈入门 寻找平衡状态(也称必败态, 奇异局势),(满足:任意非平衡态经过一次操作可以变为平衡态) 一.巴什博奕(Bash Game) 只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:转载 2015-10-12 18:05:14 · 370 阅读 · 0 评论 -
动态规划-最长递增序列(LIS)【模板】
原文地址:点击打开链接问题描述:给出一个数列,找出其中最长的单调递减(或递增)子序列。例如,{10,22,9,33,21,50,41,60,80} LIS的长度是6和 LIS为{10,22,33,50,60,80}。最优子结构:对于长度为N的数组A[N] = {a0, a1, a2, …, an-1},假设假设我们想求以aj结尾的最大递增子转载 2015-07-31 17:19:10 · 3158 阅读 · 0 评论 -
单调栈
原文地址:http://blog.csdn.net/alongela/article/details/8227707单调栈与单调队列很相似。首先栈是后进先出的,单调性指的是严格的递增或者递减。单调栈有以下两个性质:1、若是单调递增栈,则从栈顶到栈底的元素是严格递增的。若是单调递减栈,则从栈顶到栈底的元素是严格递减的。2、越靠近栈顶的元素越后进栈。单调栈与转载 2015-11-14 20:09:49 · 302 阅读 · 0 评论 -
区间DP问题(矩阵连乘,石子合并,括号匹配)
源码:#include #include #include #include #include #include #include #include #include #include #include typedef long long ll;using namespace std;int m[110][110];int a[110];int n;int原创 2016-01-04 15:22:56 · 1286 阅读 · 0 评论