ACM
文章平均质量分 80
jiqiujia
这个作者很懒,什么都没留下…
展开
-
组合与全排列非递归算法
原文地址:组合与全排列非递归算法作者:浩天 二进制组合算法: 思路是开一个数组,其下标表示1到m个数,数组元素的值为1表示其下标 代表的数被选中,为0则没选中。 首先初始化,将数组前n个元素置1,表示第一个组合为前n个数。 然后从左到右扫描数组元素值的“10”组合,找到第一个“10”组合后将其变为 “01”组合,同时将其左边的所有“1”全部移动到数组的转载 2014-01-06 16:29:46 · 876 阅读 · 0 评论 -
搜索,A* IDA*
转自:http://www.cnblogs.com/liyongmou/archive/2010/07/16/1778830.htmlA* 一般地,节点n的评估函数f(n)可表示如下 f(n) = h(n) + d(n) h(n) 是 启发式函数,与启发信息相关。启发函数h(n)的设计非常重要,它无固定的设计模式,主要取决于面向具体问题结构的知识和求解的技巧。转载 2014-01-06 16:32:02 · 461 阅读 · 0 评论 -
AC自动机算法
转自:http://blog.csdn.net/niushuai666/article/details/7002823?reloadAC自动机简介:首先简要介绍一下AC自动机:Aho-Corasickautomation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自转载 2014-01-06 16:32:06 · 463 阅读 · 0 评论 -
priority_queue用法
在优先队列中,优先级高的元素先出队列。 先写一个用 STL 里面堆算法实现的与真正的STL里面的 priority_queue 用法相似的 priority_queue, 以加深对 priority_queue 的理解push_heap():将容器中的最后一个元素加入堆中pop_head():将堆中最大的(或者自定义比较函数,默认为#include转载 2014-01-06 16:31:57 · 486 阅读 · 0 评论 -
【转】回溯法
一、 回溯的基本思想是: 从一个给定的起始位置,我们希望到达一个目的位置。我们重复地进行选择(可能是猜测)下一个位置应当是什么。如果一个给定的选择是有效的,即新的位置可能位于通向目的位置的途径中,则前进到这个新的位置,然后继续。 如果一个给定的选择通向了死胡同,则回到前面的位置,进行其他的选择。回溯就是通过一系列位置选择到达目的位置,并且在不能到达目的位置时反向退回的策略。通俗转载 2014-01-06 16:30:12 · 494 阅读 · 0 评论 -
POJ3373Changing Digits
原文地址:3373 Changing Digits(记忆化搜索 dfs)">POJ 3373 Changing Digits(记忆化搜索 dfs)作者:子任【题意】给出n和k,求一个数m,m是满足所有以下4个条件的数:(1)与n位数相同(2)能被k整除(3)与n相同位的数不相同最少(4)满足以上3个条件的最小值。其中1≤n≤10100 , 1≤k≤104,k≤n【思路】此题是看了别人转载 2014-01-06 16:31:59 · 510 阅读 · 0 评论 -
杭电1052 田忌赛马
原文地址:田忌赛马">杭电1052 田忌赛马作者:code_ghostfire田忌赛马:先排序,sort 从大到小排序,然后判断:TJ最快的马快于K的马就直接拼掉;TJ最快的马满语K的最快马,用TJ最慢的马拼掉K的最快马(反正是输,不如输得彻底);如果TJ最快的马与K的最快马持平,那么从后判断TJ最慢的马:最慢的马快于K的最慢马,直接拼掉;如果TJ最慢马慢于或等于K的最慢马,用TJ最慢马拼转载 2014-01-06 16:29:55 · 1490 阅读 · 0 评论 -
贪心算法【转自百度百科】
原文地址:【转自百度百科】">贪心算法 【转自百度百科】作者:佳佳贪心算法贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。目录贪心算法概念贪心算法特性贪心算法的基转载 2014-01-06 16:29:57 · 792 阅读 · 0 评论 -
杭电 1006 AC 仅思路无代码
原文地址:1006 AC 仅思路无代码">杭电 1006 AC 仅思路无代码作者:风雨一身轻Problem DescriptionThe three hands of the clock are rotating every second and meetingeach other many times everyday. Finally, they get bored of this and转载 2014-01-06 16:30:14 · 595 阅读 · 0 评论 -
快速幂取模算法
参考文章来源:Reait Home(http://www.reait.com/blog.html)转载请注明,谢谢合作。 在MillerRabbin测试素数,就用到了快速幂取模的思想。这里总结下。求a^b%c(这就是著名的RSA公钥的加密方法),当a,b很大时,直接求解这个问题不太可能 算法1:利用公式a*b%c=((a%c)*b)%c,这样每一步都进行这种处理,这就解决了转载 2014-01-06 16:34:49 · 537 阅读 · 0 评论 -
poj1811(素数判断与合数分解模板)
原文地址:1811(素数判断与合数分解模板)">poj 1811(素数判断与合数分解模板)作者:ac之重生素数的测试:费尔马小定理:如果p是一个素数,且0 利用费尔马小定理,对于给定的整数n,可以设计素数判定算法,通过计算d=a^(n-1)%n来判断n的素性,当d!=1时,n肯定不是素数,当d=1时,n 很可能是素数.二次探测定理:如果n是一个素数,且0转载 2014-01-06 16:34:43 · 602 阅读 · 0 评论 -
矩阵幂的和
解法一Let B= A I 0 I B^(k+1) = A^k I+A+...+A^k 0 I 时间大概是几百毫秒解法二设f[n]=A^1+A^2+....A^n;两次二分:求A^n用快速幂当n是偶数,f[n]=f[n/2]+f[n/2]*A^(n/2);但原创 2014-01-06 16:34:51 · 537 阅读 · 0 评论 -
ACM做题小技巧《转》
原文地址:ACM做题小技巧《转》作者:我的ACM博文来自:http://blog.csdn.net/power721/article/details/4503056ACM做题过程中的一些小技巧。1.一般用C语言节约空间,要用C++库函数或STL时才用C++;cout、cin和printf、scanf最好不要混用。大数据输入输出时最好不要用cin、cout,防止超时。2.有时候int型不够转载 2014-01-06 16:30:10 · 482 阅读 · 0 评论 -
如何构造任意阶幻方
原文地址:如何构造任意阶幻方作者:春雨润物 填幻方郑州市73中 张丕臣816357492幻方又名魔方,或曰纵横图,.这是一种即古老而又充满活力的数学分支.近年来,人们对它的兴趣越来越浓厚.各种幻方及花样幻方层出不穷,引人入胜.一个n阶幻方指的是将从1到n2的n2个数,排成一个n行n列的方阵,使得沿着任何行列和转载 2014-01-06 16:30:17 · 1554 阅读 · 0 评论 -
单调队列
原文地址:单调队列作者:良弓藏关键字队列,合并果子,窗户,广告印刷,最长XX子序列,志愿者选拔,动态规划,烽火传递正文单调队列,望文生义,就是指队列中的元素是单调的。如:{a1,a2,a3,a4……an}满足a1序列便是单调递增序列。同理递减队列也是存在的。单调队列的出现可以简化问题,队首元素便是最大(小)值,这样,选取最大(小)值的复杂度便为o(1),由于队列的性质,每个元素入转载 2014-01-06 16:30:19 · 487 阅读 · 0 评论 -
筛法求素数
原文地址:筛法求素数作者:阿钊 #includeiostream>using namespace std;const int MAXV = 10000; //素数表范围bool flag[MAXV+1]; //标志一个数是否为素数int prime[MAXV+1]; //素数表,下标从0开始int size; //素数个数void genPrime(int max){ m转载 2014-01-06 16:30:21 · 577 阅读 · 0 评论 -
ACM比赛经验
1.比赛中评测会有些慢,偶尔还会碰到隔10分钟以上才返回结果的情况,这段时间不能等结果,必须开工其他题,如果WA,两道题同时做。交完每道题都要先打印。2. 比赛时发的饭不是让你当时就吃的,那是给你赛后吃的。基本上比赛中前几名的队都没人吃,除非领先很多。3. 很多选手,尤其是第一次参加比赛的,到一个新环境,全当旅游了,参观的参观,找同学的找同学,玩玩乐乐就把正事抛到脑后了,结果比赛自然没什么好转载 2014-01-06 16:30:25 · 402 阅读 · 0 评论 -
SPFA算法
原文地址:SPFA算法作者:时间囊算法简介SPFA(Shortest Path FasterAlgorithm)是Bellman-Ford算法的一种队列实现,减少了不必要的冗余计算。算法流程算法大致流程是用一个队列来进行维护。初始时将源加入队列。每次从队列中取出一个元素,并对所有与他相邻的点进行松弛,若某个相邻的点松弛成功,则将其入队。直到队列为空时算法结束。这个算法,简单的说就是转载 2014-01-06 16:30:28 · 445 阅读 · 0 评论 -
C++学习【原创】remove和rem…
原文地址:C++学习【原创】remove和remove_copy函数的应用作者:孙宇洪remove函数的作用是:给你一个值val,让你删除一个容器中所有等于val的元素。函数参数:remove(first,last,val);//first为容器的首迭代器,last为容器的末迭代器,val为要查询的值。注意:remove函数并非是真正意义上的删除!一般与容器中的erase成员函数连用。为什么转载 2014-01-06 16:31:55 · 600 阅读 · 0 评论 -
求解线性模方程
求解线性模方程的一般步骤:ax+ny=b;1.求d=gcd(a,n),如果b%n!=0,则不存在解2.用扩展欧几里德求ax+ny=d的一个解x0,则方程ax+ny=b的一个解是x=x0*b/d(该方程共有d个不同的解,分别为xi=x0+i*(n/d),其中i=0,1,2,...,d-1)注:这里求出一个解其实也可以用求逆元的方法,方程两边同时除以d,得到a'x+n'y=b',这时候x0=原创 2014-01-06 16:34:45 · 950 阅读 · 0 评论 -
poj 2482 Stars in Your Window(线段树+离散化+扫描线)
原文地址:2482 Stars in Your Window(线段树+离散化+扫描线)">poj 2482 Stars in Your Window(线段树+离散化+扫描线)作者:匆匆过客题意:在一个平面内有N个星星,每个星星都在一个亮度值,用一个W*H的矩形去围这些星星,(边上的不算)求能得到的最大亮度值。思路:想了很久一直不懂 只能看别人的解题报告 。。。。原来只要转换一下,就能把其转转载 2014-01-06 16:31:53 · 380 阅读 · 0 评论