ACM/ICPC整体介绍_icpc和acm的区别-程序员宅基地

技术标签: 算法  语言  ibm  编程  microsoft  数据结构  

一、ACM/ICPC简介

ACM国际大学生程序设计竞赛(ACM/ICPC ACM International Collegiate Programming Contest)是由国际计算机界历史悠久、颇具权威性的组织ACM( 美国计算机协会)学会(Association for Computer Machineary)主办,是世界上公认的规模最大、水平最高的国际大学生程序设计竞赛,其目的旨在使大学生运用计算机来充分展示自已分析问题和解决问题的能力。该项竞赛从1970年举办至今已历25届,因历届竞赛都荟萃了世界各大洲的精英,云集了计算机界的希望之星,而受到国际各知名大学的重视,并受到全世界各著名计算机公司如Microsoft(微软公司) IBM等的高度关注,成为世界各国大学生最具影响力的国际级计算机类的赛事,ACM所颁发的获奖证书也为世界各著名计算机公司、各知名大学所认可。

  该项竞赛是年度性竞赛,分区域预赛和国际决赛两个阶段进行,各预赛区第一名自动获得参加世界决赛的资格,世界决赛安排在每年的3~4月举行,而区域预赛安排在上一年的9~12月在各大洲举行。从1998年开始,IBM公司连续5年独家赞助该项赛事的世界决赛和区域预赛。这项比赛是以大学为单位组队(每支队由教练、3名正式队员,一名后备队员组成)参赛,要求在5个小时内,解决5~8到题目。

ACM/ICPC的区域预赛是规模很大,范围很广的赛事,近几年,全世界有1000多所大学, 2000多支参赛队在六大洲的28~30个赛站中争夺世界决赛的60~66个名额,去年我校举办的区域预赛,就有来自50多所高校的100多支队伍参加,其激烈程度可想而知。

与其他编程竞赛相比,ACM/ICPC题 目难度更大,更强调算法的高效性,不仅要解决一个指定的命题,而且必需要以最佳的方式解决指定的命题;它涉及知识面广,与大学计算机系本科以及研究生如程 序设计、离散数学、数据结构、人工智能、算法分析与设计等相关课程直接关联,对数学要求更高,由于采用英文命题,对英语要求高,ACM/ICPC采用3人合作、共用一台电脑,所以它更强调团队协作精神;由于许多题目并无现成的算法,需要具备创新的精神,ACM/ICPC不仅强调学科的基础,更强调全面素质和能力的培养。ACM/ICPC是一种全封闭式的竞赛,能对学生能力进行实时的全面的考察,其成绩的真实性更强,所以目前已成为内地高校的一个热点,是培养全面发展优秀人材的一项重要的活动。概括来说就是:强调算法的高效性、知识面要广、对数学和英语要求较高、团队协作和创新精神。

注:此文摘自中山大学新闻中心

二、程序设计竞赛考核的方面

程序设计竞赛与软件工具的使用不同,它要求编程者以某种高级语言为媒介,通过构造算法去解决由现实生活中抽象出来的问题,这些问题非一般工具软件能解决。程序设计对人的能力要求是多方面的。编程者不仅要熟悉计算机语言的语法,而且还要具备:

1  扎实的数学基础和算法知识,能够对问题或者客观存在的事务及其所要解决的问题产生正确认识和理解,包括弄清楚事物属性、行为及其彼此之间的关系。

2  娴熟的编程技术,能够把对问题及其方法的认识描述出来,最终产生一个计算机能够理解和执行的系统实现。

3  相应的实践能力和创造能力,能够独立思考、提出质疑,拓延思路、洞悉规律,创造性地运用知识于不同的问题情景。

4  如果真正参加竞赛,那么对心理素质的要求非常高。落后时不急不躁,领先时不盲目乐观,方能立于不败之地。同时,大学生的ACM 竞赛是三人团队共用一台机器,这对培养集体合作精神很有好处。

综上所述,程序设计竞赛主要考的是数据结构、算法和数学模型(基本不包括windows程序,这是和programming不一样的地方--转载者注), 而这些知识恰恰就是本科阶段主要的专业基础课程,所以程序设计竞赛一定程度上可以反映出一个学校的教学水平,这也是为什么程序设计竞赛为什么规模越来越大 的一个原因。正因为程序设计能比较客观地反映人的综合素质,因此,国际、国内的各种大学生和中学生信息学方面的竞赛都把程序设计作为考核内容。

注:此文是复旦大学首 席 教授  博士生导师施伯乐 给一本关于程序设计竞赛的书所写的序

 三、常用算法简介(个人理解,仅供参考)

1.        搜索DFS(深度)BFS(广度),用的很多,基本思想,做题时优先考虑的算法。BFS:把前面的信息存储,把所有的信息计算并保存,这样前面的信息不用重复计算。BFS是一层一层来搜索,搜索完一层,再去搜索下一层(常用来从前向后推));DFS是一直向下搜,直到到底才返回(常用第归来实现)。

2.        递推公式,组合数学上讲得比较多。关系递推,欧拉公式,母函数等都会有所涉及,尤其是从现有的已知条件中如何获取递推公式,找到层与层之间的关系是解题的关键。这需要对这种题的原型有较多的研究,对这部分的概念有较深的理解。

3.        排列组合、数论及数字游戏等,对数学的知识要求比较高,不过纯粹数学的题近年来不常考。NOI,IOI(高中生的竞赛)中经常涉及。

4.        动态规划 = 分析 + 前面的结果,和递推有点类似。

a)        递推公式的一般形式:f(n) = f(n-1) + f(n-2);

b)        动态规划的一般形式:F[n][k] = max{ F[n-i][k-1] + F[i][1] } 其中1<=i<=n-k+1.

c)        此部分考得较多,题目类型变化也多,比较灵活,但是只要想对了,编程很是容易。

5.        图论,数据结构和离散数学上都有涉及,竞赛中涉及到的有最短路(纪录路径),最小生成树、Euler图、二分图(实际模型很多,比较难看出来,用得较多)

6.        模拟题,考的是基本功。要求学生:编程速度快、基本功扎实、读题时要认真仔细、肯花时间,这样就没有什么问题了。

7.      高精度,属基础部分。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zen_chou/article/details/3357586

智能推荐

python 中 冒泡排序 等while、for循环的总结_利用一个for和一个while实现排序-程序员宅基地

文章浏览阅读1.2k次。一、冒泡排序的案例二、字符串遍历案例三、for 循环计算1~100的和四、for 循环计算1~100的偶数和六、for循环打印矩形七、for循环输入数据打印矩形八、for循环打印三角形九、for循环打印九九乘法表十、键盘录入年龄案例十一、continue 循环案例..._利用一个for和一个while实现排序

BI的体系架构及相关技术_bi架构-程序员宅基地

文章浏览阅读3.1k次。一个BI系统为了满足企业管理者的要求,从浩如烟海的资料中找出其关心的数据,必须要做到以下几步:1)为了整合各种格式的数据,清除原有数据中的错误记录——数据预处理的要求。2)对预处理过数据,应该统一集中起来——元数据(Meta Data)、数据仓库(Data Warehouse)的要求;3)最后,对于集中起来的庞大的数据集,还应进行相应的专业统计,从中发掘出对企业决策有价值的新的机会——..._bi架构

Tensorflow Serving部署推荐模型_tfserving 输出key怎么制定-程序员宅基地

文章浏览阅读1k次。Tensorflow Serving部署推荐模型1、找到当前模型中定义的variables,并在此定义一个saver用于保存模型参数def saveVariables(self): variables_dict = {} variables_dict[self.user_embedding.op.name] = self.user_embedding variables_dict[self.item_embedding.op.name] = self.item_embedding_tfserving 输出key怎么制定

【JavaWeb】servlet response.getWriter().print()输出中文乱码�_response.getwriter().print指定字符集-程序员宅基地

文章浏览阅读455次。request.setCharacterEncoding(“utf-8”);response.setContentType(“text/html;charset=utf-8”);_response.getwriter().print指定字符集

如何用社群引流裂变?社群裂变引流怎么操作?_就是利用公司社群资源进行社群裂变引流就行了-程序员宅基地

文章浏览阅读490次。什么是社群裂变?社群裂变开始是要有一个群,通过与群里的成员互动有过一段时间的交流,有一定的信任度了,群成员也对你有一定的了解之后,然后加对方为好友的一个路径这就是一个简单的从社群里面裂变出来的粉丝,我们也要通过一些途径进入到一些精准的微信群中去。为什么我要讲社群裂变呢?社群裂变可以给企业和创业者带来流量,一个企业最重要的不是员工,重要的是如何获取流量的方式,社群裂变能给企业带来大量的客流量,我们通过这些流量可以成交然后再裂变更多的流量,这样可以给企业带来很大的收益,社群流量给你的网店也是可以同样的获_就是利用公司社群资源进行社群裂变引流就行了

Bug Check 0xA: IRQL_NOT_LESS_OR_EQUAL_bugcheck 0x0a-程序员宅基地

文章浏览阅读1.2k次。The IRQL_NOT_LESS_OR_EQUAL bug check has a value of 0x0000000A. This indicates that Microsoft Windows or a kernel-mode driver accessed paged memory at DISPATCH_LEVEL or above.Important This to_bugcheck 0x0a

随便推点

js实现下载excel_exceljs.workbook()-程序员宅基地

文章浏览阅读6.3k次,点赞2次,收藏7次。excel是常见的表格处理工具,那么前端怎么实现excel生成与下载呢?我们利用xlsx.js来实现一. 安装js-xlsxnpm install xlsx二. 文档简介完成的XLSX对象:需要理解的术语:1 workbook是xlsx读取excel内容后的js对象,读取到内容后可以对表格进行操作;同样的也可以创建一个空的workbook,往其中写入内容完整的workbook对象..._exceljs.workbook()

php 启动workman,workerman如何启动-程序员宅基地

文章浏览阅读1.5k次。Workerman启动停止等命令都是在命令行中完成的。要启动Workerman,首先需要有一个启动入口文件,里面定义了服务监听的端口及协议。Workerman启动的方法:以debug(调试)方式启动php start.php start以daemon(守护进程)方式启动php start.php start -ddebug和daemon方式区别:1、以debug方式启动,代码中echo、var_d..._workman 启动

wperl与perl-程序员宅基地

文章浏览阅读174次。以前在xp下,可以用wperl运行"*.pl"的文件,而不现实一个dos窗口,但在vista中不行了,需要更改文件的扩展名为"wpl",才能通过wperl运行,否则只能以perl运行。[@more@]以前在xp下,可以用wper..._wperl是什么文件

电脑W7系统怎样安装鸿蒙系统,家用电脑升级win7系统的操作方法-程序员宅基地

文章浏览阅读7.5k次。原标题:家用电脑升级win7系统的操作方法虽然xp系统运行流畅,但是现在电脑硬件更新换代速度非常快,xp系统已经不适合高配置的电脑安装使用,甚至会降低硬件的性能,所以我们需要升级到更新版本的系统,那么电脑要怎么样升级win7系统呢?一起看看家用电脑升级win7系统的操作方法吧。家用电脑升级win7系统的操作方法1、下载打开咔咔装机软件,选择U盘重装系统。 2、选择U盘模式,点击“开始制作”下一步。..._windows7鸿蒙

后端程序员成长之路_后端程序员的成长-程序员宅基地

文章浏览阅读2.2k次。今天,收到了转正通知,很开心。实习过去了两个半月,感谢我的公司,也要感谢我的leader。在公司实习的这段日子里,对我帮助最大的人就是我的leader,我逐渐从刚进入公司时的新人状态成长了许多,多了几分从容,也多了几分信心。 2018年9月份即将开始,我很幸运的能留在公司,不必参加秋招,希望自己能珍惜这次机会,努力成长。 那么,接下来的几个月我应该做些什么呢?我们在做业务的过程中,一定不能忘了..._后端程序员的成长

android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity_exception calling sethistory-程序员宅基地

文章浏览阅读1k次。android.util.AndroidRuntimeException: Calling startActivity() from outside of an ActivityCaused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity contex_exception calling sethistory

推荐文章

热门文章

相关标签