技术学习不含代码
mig_davidli
稍微明白点算法和C++,参加过几个小项目。。
展开
-
小学生玩ACM----栈和队列
很多人都看过栈和队列了吧?那岂不是我没有说的意义了?那好,我就做这个记录,等我老了还可以给孙子学栈和队列,嘿嘿 栈和队列一个先进后出,一个先进先出,栈就是一个狗洞,你爬进去之后因为空间太小不许你翻身,所以想出来就的往后挪,当然要是有人用棍子顶住你菊花那你就出不去了,嘿嘿,队列就是你人品好一点,找到的这个狗洞的主人比较勤快,已经把洞挖通了,所以对面就是出口,但是你一进去之后狗狗就发现你了转载 2013-08-04 19:51:00 · 3724 阅读 · 1 评论 -
C语言中素数的快速判断和筛法创建。
素数是一类很有用的数,至今为止,没有任何人发现素数的分布规律,也没有人能用一个公式计算出所有的素数。但素数的判断和创建是有法可循的。常用方法一:优化的枚举法(效率O(n*sqrt(n))),按照素数的定义从2-枚举到SQRT(N)。方法简单易懂,这个用于判断可以,但是创建的话时间过长。int isprime(int n){ for (int i=2;i<=sqrt(n);i+原创 2013-01-30 15:11:20 · 7736 阅读 · 0 评论 -
【一个按标志分拆字符串的好方法】strtok函数简介及应用。
刚刚接触strtok函数,感觉十分神奇。定义:strtok语法: #include char *strtok( char *str1, const char *str2 );功能:函数返回字符串str1中紧接“标记”的部分的指针, 字符串str2是作为标记的分隔符。如果分隔标记没有找到,函数返回NULL。为了将字符串转换成标记原创 2013-01-29 10:46:37 · 1377 阅读 · 0 评论 -
【一个OIER/ACMER算法练习的好去处】HDU ACM Steps王者之路系统简介~
很多人常用HDU的OJ,但是有些时候难免迷茫失措。我做了这么多,究竟是不是水题?太难的看不下去,太简单的不屑一做?我是新手,到底应该从哪看起?大牛眼中简单的BFS贪心,我怎么就是不会?……近来发现HDU有一个存在很久却乏人使用的系统——ACM Steps,它类似OIER时期的著名OJ——USACO。链接地址:http://acm.hdu.edu.cn/game ,不要原创 2013-01-28 14:07:29 · 5541 阅读 · 4 评论 -
次小生成树的一点研究
/* *算法引入: *设G=(V,E,w)是连通的无向图,T是图G的一棵最小生成树; *如果有另一棵树T1,满足不存在树T’,ω(T’) * *算法思想: *邻集的概念:由T进行一次可行交换得到的新的生成树所组成的集合,称为树T的邻集,记为N(T); *设T是图G的最小生成树,如果T1满足ω(T1)=min{ω(T’)|T’∈N(T)},则T1是G的次小生成树; *转载 2013-05-04 21:04:52 · 698 阅读 · 0 评论 -
【计算几何壮丽而荡漾】稍微谈谈凸包。
(本文部分转载)原文地址:http://blog.csdn.net/hqd_acm/article/details/6218420凸包(Convex Hull):给一堆点, 框起来的凸起来的多边形的最大的连线,就叫凸包(个人理解定义)问题给定平面上的二维点集,求解其凸包。过程:1. 在所有点中选取y坐标最小的一点H,当作基点。如果存在多个点的y坐标都为最小值原创 2012-11-02 21:47:47 · 510 阅读 · 0 评论 -
【备忘】stack和queue的常用参数
备忘,做DFS和BFS搜索的时候用:1、定义一个queue的变量 queue M //例如 queue Q,q2、查看是否为空范例 M.empty() 是的话返回1,不是返回0;3、从已有元素后面增加元素 M.push()4、输出现有元素的个数 M.size()5、显示第一个元素 M.front()6、显示最后一个元素 M.back()7、清除第一个元素 M.pop(转载 2012-10-31 15:31:49 · 593 阅读 · 0 评论 -
【世界上最早的算法】欧几里得算法及作用简介。
欧几里得算法是世界上最早的算法了,它又称辗转相除法。就ACM领域的应用,它分为一般欧几里得算法和扩展欧几里得算法,一般的主要是取余问题,用于计算两个整数a,b的最大公约数。计算原理依赖于下面的公式,定理:gcd(a,b) = gcd(b,a mod b) 证明从略,代码分为递归的和非递归的部分,均十分的简介明快。int gcd(int a,int b){ if(b==原创 2012-12-11 17:46:09 · 2537 阅读 · 0 评论 -
【给数学不好的人的KMP】字符匹配教程(一)next数组的理解
终于接触了一丁点字符匹配的东西(其实也只是入门的KMP),话说这个东西的确需要很强的数学思维,其中NEXT数组尤其坑爹,很多ACMER就是栽在了这个数组上,不明觉厉。什么诸如“失配” “数组移位”和一些S(i-1)...之类的一长串字母的确让我们十分不爽。更有博客表示这个确实很难,此中有真意,欲辨已忘言云云。。算法导论上的模板是从1开始的,自己还写了个SString数据类型让好多人云里雾里,今天我原创 2013-01-20 11:16:03 · 5564 阅读 · 7 评论 -
【给数学不好的人的KMP】字符匹配教程(二)简化运算是为了什么如何移位
昨天我们花了那么长的时间,基本搞明白了next数组的作用。我们费尽全力,只为了把上文中的else条件进行更改,即:不更新i,只移动j,从而达到节省时间,把效率从O(mn)降到O(M+N)的水平。为什么可以略过去的最大位移等于next对应的值呢?举个例子:s=abacabap=abab,有s[3]!=p[3],如果是BF的话:i=3-3+1=1,j=0;但是我们可以发现一个规律,原创 2013-01-21 14:12:58 · 1066 阅读 · 0 评论 -
【矩阵乘法入门】给数学不好的人的矩阵乘法模板教程
今天稍微学习了一下矩阵乘法和应用,我线代也不是很好。。。矩阵的定义和求解方法在线性代数中已经有所定义,我们在这里采用不太严谨的定义,矩阵就是一个有行有列的数表,体现在计算机中就是二维数组。class Mat{public: int mat[15][15];};这个数表和那个数表可以相加,可以相乘,数表自身也可以求幂。单位阵定义:主对角线为1,其余都是0的特殊矩原创 2013-02-22 10:21:36 · 4628 阅读 · 1 评论 -
网络流的入门思想
很多问题都可以转化成网络流问题,如运输货物时的物流问题,水流问题,匹配问题等等。网络是一个各条边都有权值和方向的图。网络流问题,一般情况下我们会把各种网络问题抽象成网络流问题,网络流是满足以下性质的网络:每一条边拥有一个最大的容量c,即该条边可以容纳的最大流量,f是流过该边的实际流量,且总有f求最大流的算法:EK算法:EK算法中涉及的三个关键词:残留网络,增广路,割。转载 2013-04-29 09:01:12 · 1223 阅读 · 0 评论 -
经典过桥问题的思路解析
一、问题 在漆黑的夜里,四位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,四个人一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,四人所需要的时间分别是1、2、5、8分钟;而如果两人同时过桥,所需要的时间就是走得比较慢的那个人单独行动时所需的时间。问题是,如何设计一个方案,让这四人尽快过桥。 假设转载 2013-07-28 11:11:51 · 3141 阅读 · 0 评论 -
【考据】“烫烫烫”与“锟斤拷”的原理
在程序员网站上经常看到一个段子(满满的都是泪啊)手持两把锟斤拷,口中疾呼烫烫烫。解释一下为什么会是这两个东西不是别的= =:棍斤拷乱码:源于GBK字符集和Unicode字符集之间的转换问题。Unicode和老编码体系的转化过程中,肯定有一些字,用Unicode是没法表示的,Unicode官方用了一个占位符来表示这些文字,这就是:U+FFFD REPLACEMENT CHAR原创 2014-07-07 13:45:40 · 234876 阅读 · 6 评论