第一篇:学习acm心得体会
学习ACM的心得体会
作为学计算机专业的学生,我想说我们要学的课程还真不不少,我也确实希望自己
能多学一点东西,多懂一点知识。对于acm,这种本来就隶属于计算机学科的知识或者
说是学计算机专业学生的使命,我想它值得我花点时间去关注。其实学院本来就有acm
这件事,有这个实验班存在,知识大一的时候我并没有选择去参加,因为那个时候我对
软件实验班更感兴趣点。不过后来,在大二这学期开始,选选修课的时候,我看到了有
这个课程存在,所以我决定不要错过这次机会,至少我应该去认识一下。也就是这样我
进了老师的这个班级,在老师的带领下了解acm。
acm是一个学科?acm是干嘛的呢?acm学了后是不是更好找工作了?反正我有好多的
疑问,大概想了一下acm应该和编计算机程序有关。在老师的第一堂课中,我明白了一
点,那就是想学acm,你就得能坚持住,一两轮培训下来如果你还在,这并不能说明什
么,但风风雨雨中过后你还能坚持,说明你已经算走上正轨呢。老师的课讲得很好,对
acm习题的讲解,以及分析,不说我完全明白,但至少我每次都能听得懂,而且开始对
acm有想法了。
其实我觉得学acm挺难得,不管是你要学还是想要学好。刚开始接触他的时候还是有
吃不消,觉得蛮难的,虽然我有c++的底子,但是acm对逻辑思维能力要求真的好强的。
尤其是听到老师说“有些大神做题目,有时两三天都是坐在电脑前围着一个题目,不做
出不肯罢休”,我在想我能做到吗?真的我对自己还是没有放弃,即使是自己写不出代
码,我还是去尝试。我觉得做ACM,最重要的自己是对算法的理解和掌握,要多看一些
这方面的书籍,最好的就是去图书馆找这些书先看先学。然后上网找题目做。比如老师
经常提到的poj。我打开北大acm试题的网站,开始感觉到的最大压力不是试题,因为我
连题目都难看懂,这种英文题目太让我头疼了。我下载金山词霸,试着努力先看懂题目,然后发现还是做不了。我又回过头来做老师上课课件里讲的题目,因为我听了一遍,至少还有点印象。在一次一次被打击的过程中我也慢的懂得了,学习ACM对我来说,不
仅是我在挑战他,更是我对自身的挑战。在这个选修课中,我发现对我来说老师教给我 的不再是一次选修课能学到的东西。甚至于算得上是我真正的一门考试课程。我学到的
东西是我在其他课堂上学不到的。不仅是是思维上的能力,更是做事,做人的态度以及
那份坚持。有时候,总是被ACM弄得头昏脑胀,但是在我静下心来的的时候我会再去思
考问题,慢慢的从中会明白很多很多无法用言语表达的东西,或者是曾今就听到了的,但是以前无法理解的。说真的,对我来说,最大的收获,不是我学到了多少acm知识,或者我能解多少道acm题目,更为重要的是我了解了自己的定位,看到了自己的价值。
在这段时间中,要非常感谢老师,感谢老师开设了这个课堂,让更多的人能知道,了解acm,学休克就要结束了,但老师的笑容我依然记得,尽管我还是很菜,每次做题
目把题目翻译出来都得要很久,但就像一个小孩子一样,始终要摔过才会知道怎么走路,所以我并不后悔,因为我尝试过,也快乐过。
第二篇: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、
2、
3、
4、
5、
6、
7、
8、
9、
10、
11、
12、
13、
14、
15、
16、
17、
18、
19、
20、
21、
22、
23、
24、
25、
26、
27、
C语言中要用到的头文件我基本上都已经总结出来了,要掌握经常用到的头文件(
我们现在用的编译器都是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里非常重要的一个环节,很多小问题,不错过并自己改正过,是很难在比赛中发挥出来的。而那些能走的世界舞台甚至拿下前几名的选手,都曾经作过2000以上甚至3000个题目,当然,题目的数量不能代表一切,质量也很重要,各种类型都做,难题,中等题混着做,对实力的进展有很大的帮助。同时,一般高手都会有属于自己的库,可以是交流来的别人写的,也可以是自己写的,一般提议自己写过,不过需要多次验证正确性,如果采用别人的,肯定正确的代码,必须先仔细的看明白,才能在比赛中能够用上,做点小修改等等。
3)赛前调整好心理状态:在比赛前,如何调整好心理状态,睡眠不足,过度兴奋,是比赛中非常忌的事。对于我本人,这方面存在着比较大的问题,赛前无法入睡,有类似情况的话,比赛时应该用点西洋参等提神的物品来弥补上精神不足的问题,吉林时,比赛前2天我都没能入睡,多亏了赛前集训队老师的西洋参,使得比赛中保持了一定的状态,到最后,头非常晕的情况下还能写出代码。
4)比赛时候注意细节:在比赛中,边界数据,数据范围等等同样重要,同时,注意别人的比赛情况,不要只管自己做,多注意别人做出了什么问题,并加以参考。
5)比赛的时候注意状态调整:比赛时,人是非常累的,同时,不能补充上午饭是非常大的一个身体考验,所以,ACM中,不只是比的能力,也很考虑身体素质,如何把自己的状态调整好,发挥出比较好的势力很有讲究,晕了吃点巧克力(不要是饭,面包等很需要消化的东西),多洗洗脸,可以让人尽可能的保持在清醒状态。
6)训练好的心理素质:ACM比赛中,成绩好的一定是高手,成绩差的却不一定都实力不够,即使有非常好的实力,比赛中失利也是非常正常的事,如何调整好赛后心情,虽然有时候对比赛已经没有影响,却比比赛本身更为重要。
还有在下学期开始学习一些网页制作;俗话说:不能把所有的鸡蛋放在一篮子里。作为一个大学生应该了解更多的东西,这样你就业的机会就会比别人多。
这样就不愁找不到工作。
计划: 先学一学HTML,找本自己能看懂的教材,浏览为主,不用记住所有的概念,把使用原理记住,然后用学CSS,方法同上;进而再花些时间了解一下javascript。然后就可以用记事本尝试写几个网页。同学告诉我“写网页”的捷径,就是上各大网站,把网页保存下来,然后打开保存下来的网页,点击右键→查看源文件,看看人家的网页是怎么写的,然后模仿他们的写法,不断规范自己的代码。
接下来该学一下Fireworks了,到网上找一些详细的实例教程,跟着它一步一步做下来,每学会一个实例就掌握了几项操作,慢慢的就会有自己的作品,很有成就感的,长期积累下来对自己的提高很有帮助。学Fireworks主要是学图片处理,比如加一些效果,还有很重要的就是切图。这时结合Dreamweaver进行学习,利用这些工具多做几个网页,就可以达到一定水平了。
每天拿出两个小时来学习,坚持学一个学期。到大三寒假去找个地方锻炼一下自己,去一些公司干干兼职,或是给自己的单位设计一下主页。
第三篇:ACM集训心得体会
冬季培训心得体会
寒假这一个星期的学习培训,是我对ACM有了更深层次的理解,知识面也有所扩展。下面,我来谈谈对这次培训活动的几点心得。
一,凡事贵在坚持。ACM对一个人的逻辑思维能力要求很强。当在做题过程中碰到难题时要耐得住心,沉住气,不断地思考,有不做出不罢休的精神。
二,对自己要有信心,要相信自己。当一个题目做出来提交出差后,不要急,回过头来把题目再认真读一遍,注意输入输出的格式,对照代码进行修改,改好了再提交,不能因为一次有错就盲目的提交。在修改代码的过程中要多想想为什么,这样才能提高自己。
三,有目的有针对性的训练。在做题之前,我们要明确自己的定位,然后根据自身的情况找有针对性的题目进行练习,在不断地练习中形成系统的知识体系。
四,量变带来质变。我们都知道不积小流无以成江海,不积跬步无以至千里。学习也是一样的,需要一定的练习量才能达到质的飞越。在平时自己找题目进行练习,多积累一些经典的算法是很有必要的。
五,有目标有计划。在这次的学习培训结束后,我结合自身的情况,做了规划。在做题上坚持之前的计划认真完成;在改程序时不仅仅局限于改错,还要能将复杂的程序简单化;每做完一定的题目后都要进行归纳和总结,复习回顾也是重要的。
第四篇:ACM集训心得体会
冬季培训心得体会
寒假这一个星期的学习培训,是我对ACM有了更深层次的理解,知识面也有所扩展。下面,我来谈谈对这次培训活动的几点心得。
一,凡事贵在坚持。ACM对一个人的逻辑思维能力要求很强。当在做题过程中碰到难题时要耐得住心,沉住气,不断地思考,有不做出不罢休的精神。
二,对自己要有信心,要相信自己。当一个题目做出来提交出差后,不要急,回过头来把题目再认真读一遍,注意输入输出的格式,对照代码进行修改,改好了再提交,不能因为一次有错就盲目的提交。在修改代码的过程中要多想想为什么,这样才能提高自己。
三,有目的有针对性的训练。在做题之前,我们要明确自己的定位,然后根据自身的情况找有针对性的题目进行练习,在不断地练习中形成系统的知识体系。
四,量变带来质变。我们都知道不积小流无以成江海,不积跬步无以至千里。学习也是一样的,需要一定的练习量才能达到质的飞越。在平时自己找题目进行练习,多积累一些经典的算法是很有必要的。
五,有目标有计划。在这次的学习培训结束后,我结合自身的情况,做了规划。在做题上坚持之前的计划认真完成;在改程序时不仅仅局限于改错,还要能将复杂的程序简单化;每做完一定的题目后都要进行归纳和总结,复习回顾也是重要的。
第五篇:参加ACM集训队心得体会
参加国防科大ACM集训队心得体会
本学期我参加了国防科大ACM集训队的训练,到的第一天就领教到了那些队员的实力,其中包括一些非计算机学院的人。刚开始我和他们写一样的题目,参加一样的比赛,但是这个过程非常艰难,有时候几个小时也想不出一道题目,只能去网上找答案,然后一边看代码一边思考,但后来我换了一种方式,因为我的基础比较薄弱,因此我这段时间一直忙于打基础,借了很多讲解算法的书,等把这些常用算法掌握好了,应该就能和集训队的人做相同的事情了。
通过一个多月的训练,我感觉我的编程能力有较大的提高,相比去年对C语言都很头疼的情况,我觉得今年