首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

浅谈ACM算法学习与有效训练

一、什么是有效地训练?   很多ACMer入门的时候,都被告知:要多做题,做500多道就变牛了。其实,这既不是充分条件、也不会是必要条件。   我觉得一般情况下,对于我们普通学校的大学生,各方面能力的差距不会太大,在这种情况下,训练和学习的方法尤为重要。   其实,500题仅仅是一个标志,而且仅仅表示你做ACM-ICPC有一定的时间,算是入门了吧,而且这500道题目中自己独立思考做出来的有多少,半小时内做出来的有多少,看别人的题解做出来的题目有多少,半年后仍然会做的题目有多少........ 二、训练的目的是什么?   1、提高编程能力   2、学习算法,(读书,读论文,包括做一些题目验证)   3、准备好面临将到来的挑战(熟悉题型,调整心态)   4、启发思维。 三、关于算法学习的一些建议: <1>算法学习是ACM比赛所要推广或者要提倡的一个方面   记得曾经路过某人的blog,上面说他作比赛的时候遇到了一个dijkstra,他没做出来,然后评论到(大意):我才不会花时间去搞明白“这种”算法。 “这种”也许有可能是指:没什么实用性,对吧,这样我就不想评论了(又是有关科学和工程的讨论)。但起码有一点需要明确的:ACM-ICPC比赛时关于计算机科学的比赛,计算机科学是算法的科学,计算机算法中dijkstra有着重要的实际和启发意义,所以比赛一定要考。   你参加这个比赛,要拿奖,就必须学习这种算法。你也许觉得你智商很高,但ACM-ICPC比赛本身不是智力比赛,比赛就是要让你去学习这些东西,所以,如果你不想学的话,我觉得也没有必要参加。说道这,可能偏题有点远,但是希望以上的分析能得出这样一个基础结论:不想学好算法,那没有必要来比赛。 <2>用模板是不好的   现在很多我们弱校的ACM-ICPC选手比较依赖模板,说实话,我也很依赖,但是我起码知道一点,这样是不对的,某种意义上说,这是你没有把算法学明白的一种表现。而且也严重影响编码速度。在我参加过的亚洲区域赛和亚洲区域总决赛(EC Final),那些大佬们从来没有看过模板,全部现场敲。正常的比赛绝对不会考察模板题的,每道题都是3到5个知识点糅合到一起考察的。   我觉得敲代码的时间没有浪费,某大牛曾说:因为每次敲都有可能有不同的错误,所以不用模板是好习惯。我最开始学dancing link的的时候,自己敲出了代码,然后接下来的几道题部分参考了以前的代码,后来基本上是直接copy。现在,当别人问我dancing link算法或有关的题目的时候,我已经是一脸茫然。   所以,用模板是不好的,有时候由于某些原因可能你用了模板,但你起码要知道这要做是不对的,并且有机会要改正。 <3>需要深入学习   像 ACRush、zzy、ahyangyi…等等国家队的天才们,本身难以说我们与他们之间有什么可比性。但是他们的学习方法应该还是值得借鉴的,他们的学习方法当然我们得不到言传身教,但是从他们在国家队集训的论文中和他们搞完ACM-ICPC以后的轨迹中,可以有所体现。那就是:深入学习。   首先,我觉得ACMer学算法不应停留在看看代码实现这个层面,在算法思想上要有清醒的认识,在正确性分析上要也应该要有较好的逻辑。因为网上的代码的实现上的一些细枝末节很可能掩盖了算法本身有的简洁性、美感和思想。因而丧失了对算法整体上的一些认识。还拿dijkstra算法打比方,有些算法不是基于 dijskstra的直接建模,而是需要你修改这个算法,这时你对算法没有真正理解的话,也就一筹莫展了。   所以,要阅读论文和书籍,尤其与英文书籍,窥到它的本质。另一方面,只有这样,你学的的东西才能在ACM-ICPC以外,给你一定的启发——否则你会迅速忘掉它的。

02
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    WWW`22丨中科院信工所提出:面向多场景低资源加密流量分类的加密流量预训练技术

    1 研究简介 加密流量分类在网络负载管理和安全威胁检测中逐渐成为自动识别目标应用、服务和协议的主要方式。现有的模型通常使用大规模带有准确标注的会话样本来提取流量深层的可识别特征,比如证书链、包长序列和方向序列。但是在网络环境(例如局域网)中,流量包含的场景多样,这些方法不具备健壮的通用能力来适应不同场景下的迁移,以及在小规模的标注样本下达到预期效果。 在WWW 20222这篇文章中,中科院信工所的研究者提出了一种流量表征模型, ET-BERT,有效学习无标注流量中的隐式关系,从而提升不同场景下流量分类的效

    02

    SDN网络感知服务与最短路径应用

    本文将介绍RYU中的网络感知服务,与基于网络服务的最短路径应用,主要内容包括网络资源感知模块,网络监控模块和基于网络信息的最短路由模块介绍。在一个真实的网络环境下,需掌握网络的实时动态,包括网络的资源以及网络流量状况,其中网络的信息包括交换机,端口,主机的信息,以及基于流的流量统计信息和基于端口的流量统计信息。在掌握这些关键的网络信息后,控制器就可以根据这些信息作出当下最正确的路由决策,完成网络的通信。 网络资源感知 网络资源感知模块用于感知网络资源的实时变化,包括拓扑信息以及主机信息的变化。任何网络应用,

    08
    领券