随笔分类 - 学习心得
摘要:(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走k(≤m)个,那么先取者再拿走m+1-k个,结果剩下(m+1)(r-1)个,以后保持这样的取法,那么先取者肯定获胜。总之,要保持给对手留下(m+1)的倍数,就能最后获胜。这个游戏还可以有一种变相的玩法:两个人轮流报数,每次至
        阅读全文
            
摘要:OJ上的一些水题(可用来练手和增加自信)(poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)初期:一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj3295) (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法: (1)图的深度优先遍历和广度优先遍历. (2)最短路径算法(dijkstra,bellman-for
        阅读全文
            
摘要:如果定义一个二维数组a[3][3]={0,1,2,3,4,5,6,7,8};则数组名指针,即a指向数组第一行地址的第一个地址;例如:**a==0;*((*a)+1)==1;*((*a)+2)==2; //*a则表示第一行的地址,一次类推,(*a+1)则表示第二行的地址*(*a+1)==3;*((*a+1)+1)==4;*((*a+2)+2)==8;
        阅读全文
            
摘要:复杂度为O(n2):#include <stdio.h>#include <string.h>#include <assert.h>#define MAXN 400char necklace[MAXN];int len;/* * Return n mod m. The C % operator is not enough because * its behavior is undefined on negative numbers. *///这种处理 转一圈回到头 的情况很值得学习int mod(int n, int m){ while(n < 0)	
        阅读全文
            
摘要:做过无数笔试题,做过无数面试题,基本上没遇到过很重视语言细节的 语言本身方面,可能会问问虚函数和多态,重载,作用域,存储方式,字节对齐,一般问的不多,或者根本不问 相反,对待你不懂XX语言上,往往表现的相当宽容,我面试时坦言自己只会一点C,对方也表示没有关系, 而我目标职位没有一个跟C是有点关系的 比较重要的是,基本数据结构和算法,大规模数据处理技巧,进程,线程,网络等系统问题,智力题,项目经验等 排序,链表操作,二叉树,也是经常会考到的东西,以笔试时居多,面试一般更重思路和随机应变 hash,trie tree,分治,动态规划,几乎是每个公司招聘时都会用到的,这块回答的好,可以弥补其余部分的
        阅读全文
            
摘要:我不是高手,是个初学者。在论坛中发现很多人和我一样,编程这条路不知道该如何走。 近日偶得一书,对我启发很大,解答了我近日来一直思考和迷惑的问题。现将书中介绍的高手成长的六个阶段写下来,与和我同样迷茫但又同样对编程有爱好和兴趣的朋友们共享之。 第一阶段:熟练地使用某种语言。相当于练武中的套路和架式这些表面的东西。 (作者推荐学习C语言。我学的是C++。其实C++的思想是面向对象,C面向的是更底层的东西。要想成为真正的高手,懂得C语言和BASIC语言是必不可少的。作者强烈反对一开始就从JAVA,MFC开始,这些高级的东东对底层的东西进行了多次包装,你永远不可能清楚底层的东西,你也永...
        阅读全文
            
                    
                
浙公网安备 33010602011771号