编程学习笔记
文章平均质量分 87
小白yige
每天一点正能量
展开
-
编程学习笔记1-基本的数学问题
内容整理老师的讲义,为了编程比赛学习常用的编程思想和方法,掌握一些技巧,学会处理一些常见问题,典型问题,提高自己的编程能力。1.使用位运算的作用按位与 “&”通常用来将某变量中的某些位清0且同时保留其他位不变,也可以用来获取某变量中的某一位。n = n & 0xffffff00;//将int 型n第八位置0,其余不变if(n&(1<<n)==0)//判断第n为是否为0按位或 “|”按位或运算通常用来将某变量中的某些位置1,且保留其他位不变。<pre name="code" clas原创 2014-12-01 21:47:46 · 694 阅读 · 0 评论 -
编程学习笔记15--回溯法
回溯法也称试探法,它的基本思想是:从问题的某一种状态(初始状态)出发,搜索从这种状态出发所能达到的所有“状态”,当一条路走到“尽头”的时候(不能再前进),再后退一步或若干步,从另一种可能“状态”出发,继续搜索,直到所有的“路径”(状态)都试探过。这种不断“前进”、不断“回溯”寻找解的方法,就称作“回溯法”。步骤介绍用回溯算法解决问题的一般步骤为:一、定义一个原创 2015-01-01 22:58:48 · 911 阅读 · 0 评论 -
编程学习笔记2--枚举的应用
算法思想: 对所有可能是解的众多候选解按某种顺序进行逐一枚举和检验,并从众找出那些符合要求的候选解作为问题的解。算法特点: 算法简单,但执行效率低。因此枚举法的关键在于提高编程效率。对于可预先确定元素的个数,并且元素所在的区间是连续的情况非常适合。对于类似的求abcd /ef=xy的这类问题,一般枚举用的比较多,经典的例子比如求水仙花数目,也是枚举,下面原创 2014-12-04 16:31:45 · 903 阅读 · 0 评论 -
编程学习笔记13--字典树及其运用
字典树简介字典树 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。特点 1)根节点不包含字符,除根节点外每一个节点都只包含一个字符。 2)从根节点到某原创 2014-12-29 19:24:02 · 618 阅读 · 0 评论 -
编程学习笔记8--递归的运用
递归的定义在一个子程序(过程或函数)的定义中又直接或间接地调用该子程序本身,称为递归。递归是一种非常有用的程序设计方法。递归调用的一般格式为: if (边界条件1)赋予边界值1else if (边界条件2)赋予边界值2 …… else 调用解决问题的通式 递归解决问题的关键:1.找出递推公式2.找到递归终止条件注意事项:原创 2014-12-11 20:57:10 · 580 阅读 · 0 评论 -
编程学习笔记7--贪心算法
关于贪心算法,我听说过好几次了,但是不知道为什么总是想到贪吃蛇,今天我才知道算法讲的什么意思,根据我们老师的ppt讲义,原理很简单,大部分都是例子,但是我感觉掌握还是要下功夫的,重点在于如何针对特定的问题进行贪心,某类问题是否适合用贪心算法计算,这两点感觉是难点。算法思想:顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某原创 2014-12-11 14:19:24 · 999 阅读 · 0 评论 -
编程学习笔记4--字符串处理
字符串方面的只是,用C语言自己已经处理了很多了,有点经验了,但是还是有一些新的内容,值得关注,比如这里学习发现的qsort,和bsearch函数,以前不曾用过。常用的输入输出控制方式1、数据量不定while(scanf(“%d”,&n) != EOF)2、先给数据量scanf(“%d”,&n); while (n--){}3、以某数值或符号结束 while(scanf原创 2014-12-09 09:55:46 · 551 阅读 · 0 评论 -
玛雅日历转换
玛雅历lHaab日历:拥有19个月,在开始的18个月,一个月有20天,月份的名字分别是pop, no, zip, zotz, tzec, xul, yoxkin, mol, chen, yax, zac, ceh, mac, kankin, muan, pax, koyab, cumhu. 日期用0到19表示,最后一个月uayet,只有5天。lTzolkin(holly年)转载 2014-12-09 13:38:43 · 2939 阅读 · 0 评论 -
编程学习笔记5--递推的运用
递推是常用的办法,过去印象深刻的比如求n的阶乘,把一个数字逐位输出,汉诺塔实验都是递归的运用案例。递归是递推的一种特殊方式。递归最重要的是找到结束条件,还有上层关系和下层之间的递推关系,尤其对于某些无法写出通项公式的题目,或者很难写出通项公式的题目,使用递归可以使代码变的简洁,易懂,比如二叉树的遍历中,递归输出明显比非递归容易理解的多,斐波那契数列,通项函数的计算需要解差分方程,很麻烦。用递归原创 2014-12-09 11:00:29 · 1611 阅读 · 0 评论 -
编程学习笔记3--大整数的运算
本来是打算写四种大整数的计算的,但是除法没有成功,因为当初只看到了题目里面求加法的计算,突发奇想准备把四种都写处出来,但是一开始的时候没有考虑到除法会用到减法,函数运行一直出错,以后思考了,先放过去了大笑。题目当时要求计算长的整数的加法,数据为比较多的,其实无非就是不能直接用一个变量存储的整数的运算。感悟:奋斗大数据的处理,感觉就是考察对数组的运用,加法和减法的处理是比较简单的,但是乘法和除法的处理就需要很强的技巧了。除法的自己还没有想好哭原创 2014-12-07 18:53:45 · 582 阅读 · 0 评论 -
编程学习笔记12--树状数组的运用
实例问题士兵杀敌(一)时间限制:1000 ms | 内存限制:65535KB难度:3描述南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军现在想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。注意,南将军可能会问很多次问题。输入只有一组测试数据第一行是两个整数N,M,其中N表示士兵的个数(1原创 2014-12-21 21:00:44 · 592 阅读 · 0 评论 -
编程学习笔记11--模拟问题
模拟问题现实中的有些问题难以找到公式或规律来解决。只能按照一定步骤不停地做下去,最后才能得到答案。这样的问题,用计算机来解决十分合适,只要能让计算机模拟人在解决问题时的行为即可。这一类的问题可以称之为“模拟题”。原创 2014-12-20 20:25:20 · 645 阅读 · 0 评论 -
编程学习笔记10--哈希表
导引问题Problem Description给你n个整数,请按从大到小的顺序输出其中前m大的数。Input每组测试数据有两行,第一行有两个数n,m (0Output对每组测试数据按从大到小的顺序输出前m大的数。题目特点:n数据量大n数据在一定范围思考:常规算法的缺陷?常规算法需要先对输入的值进行存储,然后进行排序原创 2014-12-19 11:07:20 · 598 阅读 · 0 评论 -
编程学习笔记9--搜索
搜索其实就等于查找1.顺序查找就是枚举,一个个的对比,发现了就是发现了,没有就是没有了,但是效率低下。前面的枚举里面的百鸡百钱和棋盘问题都是这类解决方案。#include int search (int a[], int n, int k) /*a查找表, n表长, k关键字*/{ int i; for (i=0; i<n; i++) if (k==a[原创 2014-12-18 18:01:05 · 785 阅读 · 0 评论 -
一个枚举问题的多种解法
abc*da=bcde每个字母代表一个0~9的数字,求所有答案,可以用暴力枚举如原创 2015-06-25 22:54:05 · 451 阅读 · 0 评论