ACM学习感想

学习ACM感想

大二上半学期,由于报了大学生电子商务竞赛而进入实验室。在大一时,比较迷茫,不知道自己的专业什么内容重要,什么内容不重要。所以在大一下半学期学习C语言这门最基础的程序设计课的时候,老师上课在讲自己也不认真听讲。觉得只要考试能过就行了。结果考试是过了,但对于C语言还是一窍不通。 在大二下班学期,由于选了面向对象程序设计和数据结构,老师的内容不怎么听的懂。开始认识到C语言的重要性,自己从头开始自学,把非计算机专业的C语言借来看,慢慢的赶上去,不懂的就问问同学。把书认真的看了两遍后,再接触接触计量OJ上的题目提高一下自己。就这样我开始接触了ACM。ACM=算法+数据结构。第一次接触ACM,刚开始做简单题的时候我也感觉并不容易,比如有些英文题目看起来比较费劲,要看很久才能搞清楚题目意思,有时候简单题目交上去不正确,题目有很多trick,有时候代码看多了,人就会觉得很厌倦和郁闷,但是不要灰心,我觉得做什么事贵在坚持,只要坚持下来,就会越来越体会到ACM 的无穷乐趣了。后来自己独立思考,把一些没有算法的题目基本上都提交成功了。也觉得有一些成就感,从一点都不会到现在能把一些简单的题目解决。有算法的题目,就自己百度或查一些资料,由于没有老师的指导,有些算法还是模棱两可。在数据结构的课上,老师也给我们介绍了一些算法。 下面是我自己总结的算法:

一.基本算法:

(1)枚举.

(2)贪心

(3)递归和分治法

(4)递推

(5)构造法

(6)模拟法

二.图算法

(1)图的深度优先遍历和广度优先遍历.

(2)最短路径算法

(3)最小生成树算法

(4)拓扑排序

(5)二分图的最大匹配

(6)最大流的增广路算法(KM算法)

三.数据结构

(1)串

(2)排序(快排、归并排(与逆序数有关)、堆排)

(3)简单并查集的应用.

(4)哈希表和二分查找等高效查找法

(5)哈夫曼树

(6)堆

(7)trie树(静态建树、动态建树)

四.简单搜索

(1)深度优先搜索

(2)广度优先搜索

(3)简单搜索技巧和剪枝

五.动态规划

(1)背包问题.

(2)型如下表的简单DP

1.E[j]=opt{D+w(i,j)}

2.E[i,j]=opt{D[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij} (最长公共子序列)

3.C[i,j]=w[i,j]+opt{C[i,k-1]+C[k,j]}.(最优二分检索树问题)

六.数学

(1)组合数学:

1.加法原理和乘法原理.

2.排列组合.

3.递推关系.

(2)数论.

1.素数与整除问题

2.进制位.

3.同余模运算.

(3)计算方法.

1.二分法求解单调函数相关知识

七.计算几何学.

(1)几何公式.

(2)叉积和点积的运用(如线段相交的判定,点到线段的距离等).

(3)多边型的简单算法(求面积)和相关判定(点在多边型内,多边型是否相交)

(4)凸包.

对上述一些排序算法能熟练的掌握。对于其他的一些算法,原理我还是比较熟悉的,要把书上长长的代码转化为自己的代码运用到题目中,还是觉得很难。 学算法有一个很重要的方法:每学一种算法的时候可以先看书或者上网查,搞清楚原理之后,可以从OJ上找一些这类算法的简单题做,然后对这个算法比较熟了之后就可以找一些这种算法的变形等比较难的题目做,每做完一个题目我都会在代码旁边写好注释用word文档存起来,定期把文档打印出来。或者可以写下这题的解题报告,说明用什么算法做的,要注意什么问题,便于以后要看时能够快速理解。还有对于ACM程序设计不仅要求你做的题目要多,还要求你的代码长度和运行时间,所以要去研究别人的代码为什么比你短,运行时间为什么比你少。这样你才能有更大的进步。 要了解一些头文件的用处:

1、<assert.h>设定插入点

2、<ctype.h> 字符处理

3、<errno.h>错误报告

4、<float.h>浮点数处理

5、<limits.h> 定义与实现相关的各种极限值

6、<locale.h>定义本地化函数

7、<math.h> 数学函数库使用的各种定义

8、<setjmp.h> 支持非局部跳转 9、<signal.h> 定义信号值 10、<stdarg.h> 支持可变长度的变元列表 11、<stddef.h> 定义常用常数 12、<stdio.h> 支持文件输入和输出 13、<stdlib.h>定义杂项函数及内存分配函数 14、<string.h>字符串函数处理函数 15、<time.h> 支持系统时间函数 16、<complex.h> 支持复数算法

17、<fenv.h>给出对浮点状态标记和浮点环境的其他方面的访问

18、<inttypes.h> 定义标准的、可移植的整型类型集合。也支持处理最大宽度整数的函数

19、<iso646.h>用于定义对应各种运算符的宏

20、<stdbool.h>布尔数据类型类型。

21、<stdint.h> 标准的、可移植的整型类型集合。该文件包含在<inttypes.h>中

22、<tgmath.h> 一般类型的浮点宏

23、<wchar.h>用于多字节和宽字节函数

24、<wctype.h>用于多字节和宽字节分类函数

25、<fstream.h> 文件输入和输出

26、<iomanip.h> 参数化输入和输出

27、<iostream.h> 数据流输入和输出

C语言中要用到的头文件我基本上都已经总结出来了,要掌握经常用到的头文件(<ctype.h>、<string.h>、<stdlib.h>、<stdio.h>、<fstream.h>、<math.h>),不经常用到的要知道有这样一个头文件存在。如果真的要用到你能在网上查的到就够了。

我们现在用的编译器都是Microsoft Visual C++ 6.0,关于编程的时候还有一些小问题要注意:

1、 拼写单词的时候要注意,还要注意单词的大小写。

2、 一些符号要注意,不要把“==”写成赋值符号“=”,还有分号不要漏写。

这是我经常犯的错误。

3、 oj上编辑器的问题,有写题目用C++超时,用G++却神速无比,有时候

又反过来,所以一些题目不妨用两个编辑器都交一下。又比如说一些

涉及精度的题只有用C++交才能提交。

4、 还应该注意题目的要求,它要你用int,你就别用double或者float这

样你都是不能提交正确的。

在实验室一个学期,真的收获了很多,不管是人际关系还是学到的知识。在实验室认识了很多各方面的精英。在实验室尽管ACM没人教你,你花费的时间会

更多。但你自己研究出来的东西会更有价值,让你印象更加深刻。以后到工作岗位上去也一样,你不可能什么问题都问自己的同事,能解决都要自己去解决,实在是解决不了的在再问问别人。希望下个学期能够参加一些程序设计的比赛,锻炼一下自己,使自己能够真正的进步。

自己计划在学期去参加比赛,从学长那边了解到要参加程序设计的经验:

1) 重视团队合作:ACM的灵魂在于算法以及团队合作,没有了团队合作,除非有超强的个人能力,否则是很难取得很好的成绩的,在很多情况下,一个人出错的概率远远超过2个人以上一起做题,而在比赛中,出一点小错和一次成功YES的区别是非常大的,不只有罚时,更是心理上的区别,所以保证良好的团队合作,对比赛是至关重要的,在我自己的比赛中,两次的比赛,一次合作的好,一次合作的乱,直接导致了金和铜的区别。

2) 平时做好准备:在赛后颁奖的时候,亚洲区负责人黄金雄教授曾说,在地区赛中,要取得一个金牌,至少需要1000个题目的积累,银牌也需要500个,可见练习是ACM里非常重要的一个环节,很多小问题,不错过并自己改正过,是很难在比赛中发挥出来的。而那些能走的世界舞台甚至拿下前几名的选手,都曾经作过20xx以上甚至3000个题目,当然,题目的数量不能代表一切,质量也很重要,各种类型都做,难题,中等题混着做,对实力的进展有很大的帮助。同时,一般高手都会有属于自己的库,可以是交流来的别人写的,也可以是自己写的,一般提议自己写过,不过需要多次验证正确性,如果采用别人的,肯定正确的代码,必须先仔细的看明白,才能在比赛中能够用上,做点小修改等等。

3) 赛前调整好心理状态:在比赛前,如何调整好心理状态,睡眠不足,过度兴奋,是比赛中非常忌的事。对于我本人,这方面存在着比较大的问题,赛前无法入睡,有类似情况的话,比赛时应该用点西洋参等提神的物品来弥补上精神不足的问题,吉林时,比赛前2天我都没能入睡,多亏了赛前集训队老师的西洋参,使得比赛中保持了一定的状态,到最后,头非常晕的情况下还能写出代码。

4) 比赛时候注意细节:在比赛中,边界数据,数据范围等等同样重要,同时,注意别人的比赛情况,不要只管自己做,多注意别人做出了什么问题,并加以参考。

5) 比赛的时候注意状态调整:比赛时,人是非常累的,同时,不能补充上午饭是非常大的一个身体考验,所以,ACM中,不只是比的能力,也很考虑身体素质,如何把自己的状态调整好,发挥出比较好的势力很有讲究,晕了吃点巧克力(不要是饭,面包等很需要消化的东西),多洗洗脸,可以让人尽可能的保持在清醒状态。

6) 训练好的心理素质:ACM比赛中,成绩好的一定是高手,成绩差的却不一定都实力不够,即使有非常好的实力,比赛中失利也是非常正常的事,如何调整好赛后心情,虽然有时候对比赛已经没有影响,却比比赛本身更为重要。

还有在下学期开始学习一些网页制作;俗话说:不能把所有的鸡蛋放在一篮子里。作为一个大学生应该了解更多的东西,这样你就业的机会就会比别人多。

这样就不愁找不到工作。

计划: 先学一学HTML,找本自己能看懂的教材,浏览为主,不用记住所有的概念,把使用原理记住,然后用学CSS,方法同上;进而再花些时间了解一下javascript。 然后就可以用记事本尝试写几个网页。同学告诉我“写网页”的捷径,就是上各大网站,把网页保存下来,然后打开保存下来的网页,点击右键→查看源文件,看看人家的网页是怎么写的,然后模仿他们的写法,不断规范自己的代码。

接下来该学一下Fireworks了,到网上找一些详细的实例教程,跟着它一步一步做下来,每学会一个实例就掌握了几项操作,慢慢的就会有自己的作品,很有成就感的,长期积累下来对自己的提高很有帮助。学Fireworks主要是学图片处理,比如加一些效果,还有很重要的就是切图。这时结合Dreamweaver进行学习,利用这些工具多做几个网页,就可以达到一定水平了。

每天拿出两个小时来学习,坚持学一个学期。到大三寒假去找个地方锻炼一下自己,去一些公司干干兼职,或是给自己的单位设计一下主页。

 

第二篇:团校学习感想

团校学习感想

很荣幸能被大家推荐,进入团校学习。团校的课程生动活泼,内容丰富,名师的课程蕴含丰富的人生哲理与智慧。通过在团校的学习,我不仅了解了更多有关于团的知识,而且结交到了更多的朋友,自身的综合素质得以进一步提高。

团校的第三次课程是占赢书记的《如何做一名成功的学生干部》。占书记用问答的形式,一一解释了提出的八个问题。占书记当代大学生学生干部的责任就是:服务作用。身为学生干部就有为同学服务,为大家服务的责任。就要增强服务意识,树立以服务为荣的思想,有吃苦耐劳精神,急同学之所急,帮同学之所需。时时为大家着想,力所能及地为同学排忧解难,满腔热情地为班集体服务。把哲学、医学、人生用一种理性高度联系在一起。他首先把我们带入了这样一个情景:一个人,在悬崖边漠然,周围的人狂喊“不要跳,你还有人生意义,你还有人生的责任!”,那个人回过头来,幽幽一句:“what is the real life?” 这段引人入胜的开场让我们始终以困惑、疑虑、好奇的心情听完了这场讲座。当我们听到周老师说:“你要找自己的人生意义”,“人生没有意义,正因为没有意义,你才要不断去找,不断去创造!”,我们大家发出会心一笑。正是这种轻松愉悦的思想交流让我们窥探到了人生的真谛,领悟到了哲学的优美境界。

团校的第五次课是薛蓉老师讲授的《大学生的恋爱观》。我觉得在同学中引导或者说是教授大家如何正确处理恋爱关系是很必要的。“要讲究缘分”,“两个人在一起会更好”?现在社会要么充斥着“人要现实”的观点,过于浮躁,没有心灵上的交流;要么有的人因为感情荒废学业,一事无成。一个人只有具备良好的心理,正确处理情感问题,才会有长足的发展。对于恋爱观,因人而异,但我认为这次课的主题就是带给我们以启发,以思索,让我们学会去承担去学会“在适当的时间,做适当的事情”,“找到合适于你的”。

特别敬佩沈瑞年书记,她对科学的探索精神,对人生的坚强与不屈给我留下了深刻的印象。沈书记亲切慈祥,没有想到她有那么多阅历:身为中医世家,但是却有疾病的亲人需要照料;学习成绩出色,但却在山上下乡中成为知青失去上大学机会;身体不好,在同伴失误把农药喷入口中差点丧命;终于有机会上大学,已经是28岁大龄?经历这么多,她没有被生活打垮,反而对生活怀有感恩之心,生活也尽力回馈于她,学习名列前茅,工作能力出众,家庭也非常幸福。沈书记

给我们做了一个非常好的榜样,她让我们明白什么是生活中真正的强者,一次次所谓的小失败其实不过是成功路上的一粒粒石子。“顶天立地做人”,是沈书记给我们的寄语。是的,顶天,要把目光放远,着眼于世界;立地,要脚踏实地,埋头苦干;做人,是我们一直要坚守不变的立身之本。作为新世纪名牌大学的大学生,我们不近要把专业知识掌握好,具备良好的综合素质,更重要的是要有作好“人”的人生目标。尤其是医生,更要有“人”的观念,选择处方的时候是首要考虑回扣还是考虑病人的疾苦;你是首要考虑自身的利益还是以救人为重肯于牺牲自我…这一个个选择无不是我们人生观价值观发挥作用的结果。书记的娓娓讲授给我们以心灵的净化,思想的启迪,让我们明白自己应该成为什么样的人,要成为什么样的人。

团校就是这样一个充满活力给我们启迪的学校,知识没有强灌给我们,而是如涓涓细水,滋润着我们的心灵。共青团是共 产 党后备军,而团校的学习给我们

继续学习继续进步的机会。祝愿团校越办越好!

相关推荐