ACM学期总结
konghhhhh
记录自己的学习过程
展开
-
关于acm程序设计书中题目 #B第二题
这次的题都是英文题,读的时候依然生涩难懂,尤其是刚上来从第一题开始看,连谷歌翻译都用上了就是觉得迷迷糊糊,干脆就把这题扔下了,找起简单点的先做。 #B 第二题: 第二题要求编出一个字典,一个字符串与另一个字符串要刚好对应。 做题时不熟悉map容器的用法,我最开始的想法 一是建一个string数组,用getline存入一整行,将字典存储。在调用时用find()函数循环查找。二是建立两个原创 2017-03-11 16:20:30 · 234 阅读 · 0 评论 -
关于acm程序设计书中题目 #H 第8题
第8题是让用a-j表示10-19,来表示出二十进制,并随其进行加法计算。首先我对比着十进制和十六进制,八进制的转化关系,想着先把输入的二十进制转化为十进制,然后再计算,但发现二十变十简单,十变二十我却想不到方法,只能改变方法。然后按着高精度计算的法子,先输入字符串类型,转化成数组存储,一位一位的计算。中间比较注意的是倒序存储,满二十进一等,但是因为高精度那节讲得很清楚,也没什么难处。a原创 2017-03-14 19:59:04 · 237 阅读 · 0 评论 -
关于acm程序设计书中题目 #M #N #O
#M M题让输入一串数,求该部分数有几个数是里面其他数的2倍,并输出。由于不知道这串数有几个,所以使用vector动态数组存入,存入方式是先输入一个数,再将它存入数组:cin>>x;v.push_back(x); 然后循环比较即可。在循环使用vector时,应注意直接继续 push_back()并不是从头开始了,,正确方法是每次循环完成后,加一句v.clear(),把向量清空。原创 2017-03-18 09:53:42 · 497 阅读 · 0 评论 -
关于acm程序设计书中题目 #J #K #L
#JJ提要求是把全有大写字母表示的字符串按照A>B,B>C,,,Z>A的形式变换。这个题相当简单,只需要一个strng ,然后以为一位换就可以了,中间判断一个是否为Z,是就变为A,不是就++。值得注意的一点是:输出格式的问题,题目中要求输出 #String n,中间空格容易忽略!!!代码如下:#includeusing namespace std;int main(原创 2017-03-18 09:15:14 · 268 阅读 · 0 评论 -
总结
发现原来留下了最后一部分忘了发博客,,,,,补上。。。这是我这一学期的心路总结:这样这学期知识体系的大体就写完了,包括了自己对这些每个方法的一些阶段性认识,算是一个总结。而在另一个方面,心理上的,我从上学期无意间地去听学长介绍演讲起了兴趣,到兴冲冲地报名选课,再有寒假里的短期培训、这个学期的一天天训练做题,直到现在,也还好,开始那股兴冲冲的劲还没有退,感觉自己还愿意再去学更多的东西原创 2017-07-15 16:06:21 · 149 阅读 · 0 评论 -
八、二分算法 九、树和图
二分三分,就是将大规模的问题分解成几个较小规模的子问题,这些子问题与原问题相似,找出各部分的解,然后组合成整个问题的解。 分治的具体过程如下: { if(问题不可分) 返回问题解; else{ 从原问题划出含一半运算原创 2017-06-18 19:11:05 · 222 阅读 · 0 评论 -
七、贪心算法
贪心是在后面学的,学的时候感觉真是特别亲切,因为它挺简单的,完全就是无脑操作啊。如果在求解一个问题时,依据某种贪心标准,从问题的初始状态出发,直接去求每一步的局部最优解,通过若干次的贪心选择,推导出全局最优或最优目标,那么就可以根据这个策略,推导出这个问题的解,这种策略就是贪心。从贪心算法的定义可以看出,贪心算法不是从整体上考虑问题,它所做出的选择只是在某种意义上的局部最优解,而由问题自身的性质决原创 2017-06-18 19:02:31 · 162 阅读 · 0 评论 -
六、深搜广搜
搜索,所谓的万能算法,搜出答案。搜索算法是利用计算机的高性能来有目的的穷举一个问题的部分或者所有的可能情况,从而求出问题的解。但是实际上,用搜索做题几乎是经常TLE的,这也并不是搜索不对,而是在搜的过程要加上一些剪枝,来精简优化。 搜索有两方法,深搜和广搜。 1、深搜深搜过程用到了回溯思想,通俗讲深搜就是每当有多个选择时找到一条路,沿这条路一直向前走的同时,给自原创 2017-06-18 18:57:23 · 329 阅读 · 0 评论 -
五、动态规划
刚接触动态规划的时候,我总是和递归递推混淆,感觉他们是一类问题,但接触得多了就理解到,动态规划更多的是是一种思想,一种把整体化为部分,把大问题化为小问题的思想。用动态规划求解一类问题是,需要将问题的全过程恰当的分成若干个相互联系的阶段,以便按一定的次序去求解。或者从初始状态到结束状态,或者反过来,最终求出最优活动路线。动态规划的解决过程,重点在于在做每一步决策是,列出各种可能的局部解,然后依据原创 2017-06-16 23:22:18 · 173 阅读 · 0 评论 -
四、递归递推
四、递归递推递推的特点是:一个问题的求解需一系列的计算,在已知条件和所求问题之间存在某种相互关联的关系。解决问题首先要得到递推关系,把一个复杂的问题求解分解成连续的若干重复的简单运算,以充分发挥计算机擅长重复处理的特点。递归的特点则是函数调用本身,把一个大型问题层层转化为一个与原问题类似的问题求解,小问题可以直接解决。这里是五个典型的递推关系:1、Fibonacci数列 f(x)原创 2017-06-16 23:20:42 · 247 阅读 · 0 评论 -
二、高精度计算 三、排序算法
ACM中有时遇到精度要求极高或者几十几百位的数,超出了int、double范围,需要高精度来解决。我认为高精度的根本就是把string转化为数组,值得注意的是数组a[]在存一个大数时,a[1]a[2]…一次存的是个十百千….位,而在string之中,是(n-1),(n-2)….位,也就是吧string到着存入数组之中。而高精度中的难点,则是小学生就应该熟记于心的逢十进一与像高位借一,在计算原创 2017-06-15 21:02:30 · 459 阅读 · 0 评论 -
一、STL模板
STL是C++标准模板库,当时学的时候含糊不清,并不明白这到底是个什么东西,到有个什么道理,怎么着它就能这样用了呢?怎么着它就这么简单呢?这个问题直到前两天我才终于搞明白,那是在C++课程学完了类之后,对与C++有了全新的理解之后,我才发现后面有一个章节讲的就是模板,这才让我如梦初醒般的搞清楚了其中道理(这也好像是说的过分,连源代码都没有看一看也好意思说搞清楚道理),反正就是明白了它怎么来的,这样原创 2017-06-15 20:58:08 · 204 阅读 · 0 评论 -
期末总结
学了一个学期的ACM了,从寒假刚开始接触时一个题也看不懂,到现在也能知道几个算法,做出来几道题了,学了一个学期,费了不少劲,也收获了好多东西。 这学期总共算是依次学了STL,递归递推,动态规划,深搜广搜,贪心,二分,树,图几个算法。越往后面感觉是越难的,但也咬咬牙,努力坚持了下来,就算是学的不怎么好,也得明白了怎么回事才行啊。 下面分别谈一下自己通过这个学期的学习对原创 2017-06-15 20:56:52 · 150 阅读 · 0 评论