文章分类 - 算法
参加程序设计比赛时所做的一些题目以及积累的算法知识
摘要:参加程序设计竞赛这么久,总结一些规律。。》 一道题目想了好久都是有思路却差一点,放弃原来思路重新思考。。。》 一定要注意,题目数据范围。(别被这个坑死了~WA一天) 》 定义数组大小时,不要用全局变量定义。 (变量定义数组,是会RE的)》 写代码是自定义的变量名尽量“看名知意”,但不要用语言中的关键...
阅读全文
摘要:题目链接:http://acdream.info/problem?pid=1154题意很清楚~~思路:s[n]数组储存2^n 下标代表幂指数 原数:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22变形: 1 2 1 4 1 2 1 8 ...
阅读全文
摘要:三分算法: 求凹凸函数的最值~~题意: 求影子最大长度。思路:在墙面的影子为 X, 灯高H, 人高h, 灯距墙D。 给灯和人 都减去墙面影子的长度,则为相似三角形 三角形定理 影子长度为 (h-X)*D/(H-X) + X;#include #include using namespac...
阅读全文
摘要:题目链接:http://poj.org/problem?id=1258普里姆算法:有n个顶点,每两个顶点之间都有权值;从顶点v0 开始构造最小生成树T。low数组记录已经构成树的顶点和未构成树的顶点之间的边的权值。循环n-1次{ 找到low数组里面最小的权值的边,并加入构成树的顶点数组中。 更新lo...
阅读全文
摘要:题目链接:http://poj.org/problem?id=1324 大意: 给你一个矩阵,有一条蛇,问蛇走到(1,1)点所需要的步骤数,有石块障碍思路: 被这道题的状态如何标记折磨了两天~,后来看老师讲稿,队里大牛讲解终于搞懂了; 蛇的长度[1,8]。矩阵大小不超过20*20。蛇头的每一次移动...
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1728BFS:从一个图的某个顶点出发,首先访问与v节点相邻切未被访问过的节点v1,v2,v3,v4..... ,然后依次访问与v1,v2,v3,v4...相邻且未被访问过的节点,由此可以得到 BFS进行搜...
阅读全文
摘要:总结:DIJ算法 : 》可以求一个源点到其他各个点的最短路径 》需要两个一维数组,一个记录当前的最短路径值,另一个记录已经求出最短路径的节点 》每次都是从当前路径的最短路径值中寻找最小的,进行更新最短路径。Floyed算法: 》可以求出每两个节点间的最短路径。 》需要一个二维数组,记录最短...
阅读全文
摘要:简介:在一些有N个元素的集合应用问题中,通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找某个元素在哪个集合中。这类问题就需要用到并查集。常用操作:》初始化集合:每个节点开始的父节点都是本身for(int i=1; i#includeusin...
阅读全文
摘要:在数论,对正整数n,欧拉函数是求小于或等于n的数中与n互质的数的数目。φ函数的值 通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数,x是不为0的整数。 φ(1)=1(唯一和1互质的数(小于等于1)就是1...
阅读全文
摘要:巴什博奕:一堆有n个物品,两个人轮流从这堆物品中取物,规定每次取出物品为m(1 0)。 操作:清空一个盒子中的石子,然后从另一个盒子中拿若干石子到被清空的盒子中,使得最后两个盒子都不空。当两个盒子中都只有一枚石子时,游戏结束。最后成功执行操作的玩家获胜。 结论:(x,y)至少一偶时,先手胜;都...
阅读全文
摘要:知识: ‘>’右移 ‘~’ 非 ‘^’ 异或 ‘&’ 与 ‘|’或 例: a>3 a / 2^3; 将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。 ~a a的二进制位每位(0变1, 1变0) a^b 把a与b的相同位比较 相同变...
阅读全文
摘要:拓扑排序步骤:》在有向图中选一个没有前驱的顶点(入度为0)且输出。》从图中删除该顶点和以它为尾的弧。重复上述两步。》直至全部顶点均已输出。》当前图中不存在无前驱的顶点则说明有向图中存在环。#include #include #include #include #include #include us...
阅读全文
摘要:问题:一项工程有n个小项目要完成,一些项目的开始建立在一些项目的完成的基础上。求哪些项目是关键项目?(关键项目:提前该项目可以缩短工程时间)关键项目求解:》对邻接表进行拓扑排序。》按拓扑排序的顺序求每个项目完成的最早时间。》按逆拓扑序列求每个项目完成的最迟时间。》其中 最迟时间==最早时间 的项目就...
阅读全文
摘要:差分约束:对于差分不等式,a - b = c ,建一条 b 到 a 的权值为 c 的边,求的是最长路,得到的是最小值求最短路,值是满足条件约束的最大值。求最长路,值是满足条件约束的最小值。最短路:开始的时候,初始化为+无穷。不断减小最短路的值来看是否满足约束条件的,一旦满足约束条件了,就不再松弛了,...
阅读全文
摘要:upper_bound(front, rear, x) (front rear 都是迭代器 返回>x的第一个数的迭代器)lower_bound(front, rear, x) 返回#include #include #include using namespace std;const int m...
阅读全文
摘要:dp+状态压缩: 一个数组即可保存状态。但是有这样的一些题目,它们具有DP问题的特性,但是状态中所包含的信息过多,如果要用数组来保存状态的话需要四维以上的数组。于是,我们就需要通过状态压缩来保存状态,而使用状态压缩来保存状态的DP就叫做状态压缩DP。(感觉就是状态过多了,就要简化状态的表达,就是用...
阅读全文
摘要:字典树 是一种树形结构,是一种哈希树的变种。应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。 优点:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。 主要用于 用于字符串的快速搜索、字符串的(字典序)排序...
阅读全文
摘要:指数型的母函数用于解决多重集的排列组合问题。介绍:(看这个吧)http://blog.csdn.net/lishuhuakai/article/details/8044431题目:http://acm.hdu.edu.cn/showproblem.php?pid=1028数字拆分:即把整数分解成若干...
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602题意:有N 个骨头,你有一个体积为M 的背包。 给你每个骨头的价值va[i], 和体积vo[i] 思路:直接引网上原话(感觉很好理解) 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不...
阅读全文
摘要:动态规划(DP): 主要用于组合优化问题,即求一个离散问题在某种意义上的最优解。适合用动态规划的两个基本要素: 》最优子结构性质(该问题的最优解包含子问题的最优解) 》子问题重叠性(当前所对应的子问题呈现大量的重复)动态规划的算法步骤: 》选择适当的问题状态表示, 分析最优解的性质。 ...
阅读全文

浙公网安备 33010602011771号