热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

神牛笔记:吉林大学ACM总结(fennec)

其实在北京比赛完的时候,我就想写了,不过还是早了点,直到上海比赛结束,大家的心中都不是太好受。郭老师有句话:你们这样做也是对的,不成功就成仁。让我的心也能安慰了不少。我是从大一下学期开始接触A
其实在北京比赛完的时候,我就想写了,不过还是早了点,直到上海比赛结束,大家的心中都不是太好受。郭老师有句话:你们这样做也是对的,不成功就成仁。让我的心也能安慰了不少。
我是从大一下学期开始接触ACM的,那时候我们学校才刚刚起步,siyee,wjiang师兄可以说是我的领路人了,冲名次,比做题真是一种幸福的感觉。
大二上学期很有幸与siyee队长,jack学长一起代表学校参加了比赛,那时候我的心情是很放松的,对自己的目标也是ac一道就万岁:)这也是今年我对windsbu说的话。毕竟那时不是队长,所以对我来说,最重要的就是完成队长布置的任务,其次就是在比赛中做出一道适合自己的题目。去年的最好结果是学校排名第九,大家虽然有种遗憾的感觉,但是毕竟是进步了。
到了大二下学期的选拔赛,涌现出了好多人才,很多人都很有能力,但是有一点最遗憾的是:许多人接触的比较晚,可能是因为热身赛或者选拔赛才了解了ACM,而我们学校的ACM训练只是一个课余的活动,不能与许多学校专业的训练来相比。这样的结果是,缺乏底子好的老选手,即使出现了有很强能力的同学,也不能在极短的时间里使他们达到一个相当的高度!
经过了暑假的集训,学校在队伍人选上很是下了一番功夫。从队员到队伍,无不精心研究。可能连统计学的许多知识都用上了:)
最终很高兴能够与codecpp,wind,组成了jojer队,开始我是不太好意思使用jojer这个名字的,我害怕对不起这个名字,所以先暂时叫做j2吧。由于经验少,刚开始训练的时候有一种摸不到头脑的感觉,许多时候知道有问题,但就是不知道该怎么解决,walkoncloud老师就曾经批评过我:你们队伍就是一个“神经病”带着两个“小神经病”一起“神经病”。这当然只是一种玩笑,但是确实是我们队伍初期的症状,什么事情都没有章法,这时候我们只好使用最原始的方法:讨论加总结。每次比赛结束后无论题目简单与否都要首先将所有题目讨论一遍,将做错的,不会的都分配到人继续将它解决。然后大家单独写赛后总结,交到我这里,在经过分析后,再开集体会议,批评+自我批评并制定下一步策略。用我的话说:这种方式挽救了我们,让我们在极短的时间里磨合了起来。
我们队伍最后的分工是:
wind主要负责读题,读题时要将重点难点标记出来,构想出初级的边缘测试数据。并主要负责计算几何以及一些需要推理的数学题目。
codecpp主要负责1-2简单题目,1到中档搜索题,以及编译方面的题目。和wind对边缘题目以及简单题目形成互补,以及调试上的帮助。
fennec主要工作是对wind,codecpp读过的题目进行分类,分析,对简单题目直接决定分配的人手,对中档题的复杂度,题型进行准确分析,引导思考方向。在有时间的情况下组织对较难题目的深层讨论。
我想最后我们还是基本实现这几方面内容的。
具体到了比赛,首先就是网上预赛:两次比赛感觉是发挥了自己的能力,这也算是队伍第一次最严肃认真的比赛了,大家都很尽力,光从赛后东方饺子王的战绩上就能感觉到!
在北京赛区,我们很快的作出了三道题目,但在后面wa在了两道题目的上面。这没有什么太好说的,我们队伍这时候最大的缺点在于对于wa题目的处理。但是最后还是因为罚时少,取得了学校排名第七的成绩。这也是一个可以接受的成绩。
从北京回来就有好多是要做,接连的补作业,以及期末考试,将训练计划打散了不少。这也是很正常的,毕竟在学校和老师看来,学习是最重要的,我们不是培养一个ACM机器。
在上海的比赛就有些不尽人意了,一是疲劳,二是对题目难度缺乏正确的估计,三是一开始比赛的时候就有些乱套,四是没有专心地做一个题,结果都没有做对。但是很多问题都是因为我在大局上把握的失误,我也感觉很自责,不过一切都过去了,希望后来人能够吸取教训吧。

我想对未来的同学有几句话要说:
1 我们几乎没有noi上来的队员,大家只能依靠后期的更加刻苦的努力。
2 我们没有专业的班级或者机制形成职业ACM队伍,所以大家只能尽早的投入进来,用尽一切课余时间去训练。
3 我们不能在数目上和传统强队比拼(除非队伍中的三个人都很强),所以我们要在中低档题目的ac时间和正确率上下功夫。
4 不要抱怨什么,你所要做的就是尽力发挥自己的全部,并在发现问题后努力改正。
5 不要懒得动手,许多题目你觉得自己方法对了,或者怕麻烦就不写了,这是一个最大的缺点,在比赛的时候你可能需要用2-3倍于别人的罚时去做出来。
6 不要只是追求ac数目,作出一道不会的题目胜过做出10道已经会的题目。
7 多交流代码!不要只是闭门造车。
8 养成良好的代码习惯。
9 在平时做题的时候就养成紧张的好习惯,不然在比赛的时候你会很吃亏的!

关于比赛的感觉:最重要的是四个字:天外有天

而对于真正想继续从事ACM事业的同学,我有以下建议:
0 首先了解C/C++,以及数据结构。
1 首先在joj做够50题,这是基本的热身
2 看一本算法书,清华紫皮的感觉简单点
3 在继续做够200题,这时候应该在输入输出上不会出大问题了,并了解了基本算法。
4 看看吴文虎,以及沙特的那本书。
5 在joj做够400题
6 这时候应该能够出山了,可以参加几次各类的竞赛
7 去uva分类做题,这时候不要再在意你的题目数目了,要有目的的,分类训练了
首先可以是动态规划,然后是搜索,然后再是动态规划,然后再是搜索…这种循环往复的方法,并加以总结,会是你自身提高最快的时候。建议一定要作总结,可以参考我后面的例子。(另外一定要用好uva的论坛功能!)
8 在uva训练200题目的时候,可以考虑一些典型代码算法的东西了,如网络流,poly计数,匹配等等。并把这些算法做成模板!并且要加强自己的理论修养了,看看离散数学,组合数学,概率论等等数学方面的东西。
9 总题目到达了1000的时候就可以查缺补漏了,这一段主要以套卷为主,将每次自己不会的题目搞懂就好了!并要适应比赛的节奏!
10 在题目到达1100-1500的时候,算是小成了。这样的同学就应该能够胜任队长了。
11 剩下的只能靠自己了:)

推荐阅读
  • 在将 Android Studio 从 3.0 升级到 3.1 版本后,遇到项目无法正常编译的问题,具体错误信息为:org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDemoProductDebugResources'。 ... [详细]
  • 实践指南:使用Express、Create React App与MongoDB搭建React开发环境
    本文详细介绍了如何利用Express、Create React App和MongoDB构建一个高效的React应用开发环境,旨在为开发者提供一套完整的解决方案,包括环境搭建、数据模拟及前后端交互。 ... [详细]
  • 编译原理中的语法分析方法探讨
    本文探讨了在编译原理课程中遇到的复杂文法问题,特别是当使用SLR(1)文法时遇到的多重规约与移进冲突。文章讨论了可能的解决策略,包括递归下降解析、运算符优先级解析等,并提供了相关示例。 ... [详细]
  • 探讨低代码行业发展现状,分析其未能催生大型企业的原因,包括市场需求、技术局限及商业模型等方面。 ... [详细]
  • 探讨密码安全的重要性
    近期,多家知名网站如CSDN、人人网、多玩、开心网等的数据库相继被泄露,其中大量用户的账户密码因明文存储而暴露无遗。本文将探讨黑客获取密码的常见手段,网站如何安全存储用户信息,以及用户应如何保护自己的密码。 ... [详细]
  • 本题要求实现一个高效的算法,在一个 m x n 的矩阵中搜索目标值 target。该矩阵具有以下特性:每行的元素从左到右按升序排列,每列的元素从上到下按升序排列。 ... [详细]
  • 在Java开发中,保护代码安全是一个重要的课题。由于Java字节码容易被反编译,因此使用代码混淆工具如ProGuard变得尤为重要。本文将详细介绍如何使用ProGuard进行代码混淆,以及其基本原理和常见问题。 ... [详细]
  • 使用 Vue3 Script Setup 语法糖构建双人联机俄罗斯方块
    作为一名前端开发者,Vue3 是一个不可或缺的工具。本文通过一个实战项目——双人联机俄罗斯方块,详细介绍如何利用 Vue3 的 Script Setup 语法糖进行开发,帮助读者掌握最新的前端技术。 ... [详细]
  • c#  项目文件,C#viual studio使用方法
    一、项目文件1)Properties节点下主要存放的是当前程序集相关的信息,如版本号、标题等。双击”Properties“,打开如下项目属 ... [详细]
  • pypy 真的能让 Python 比 C 还快么?
    作者:肖恩顿来源:游戏不存在最近“pypy为什么能让python比c还快”刷屏了,原文讲的内容偏理论,干货比较少。我们可以再深入一点点,了解pypy的真相。正式开始之前,多唠叨两句 ... [详细]
  • 实现系统调用
    实现系统调用一、实验环境​本次操作还是基于上次编译Linux0.11内核的实验环境进行操作。环境如下:二、实验目标​通过对上述实验原理的认识,相信 ... [详细]
  • Flutter 核心技术与混合开发模式深入解析
    本文深入探讨了 Flutter 的核心技术,特别是其混合开发模式,包括统一管理模式和三端分离模式,以及混合栈原理。通过对比不同模式的优缺点,帮助开发者选择最适合项目的混合开发策略。 ... [详细]
  • Linux环境下MySQL的安装与配置
    本文详细介绍了在Linux系统上安装和配置MySQL的步骤,包括安装前的准备工作、下载和解压安装包、初始化数据库、配置文件编辑、启动服务以及设置开机自启动等。 ... [详细]
  • 本文介绍了如何在Linux系统中将命令添加到PATH环境变量中,以便在任何位置都能直接运行这些命令。PATH是一个包含多个目录路径的字符串变量,当输入不带路径的命令时,系统会在这些路径中查找并执行相应的命令。 ... [详细]
  • 本文详细介绍了在单片机编程中常用的几个C库函数,包括printf、memset、memcpy、strcpy和atoi,并提供了具体的使用示例和注意事项。 ... [详细]
author-avatar
qqq
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有