ACM算法竞赛入门 概述

扩展:算法竞赛-培养杰出程序员的捷径

  • 杰出的程序员往往具备:
    1. 掌握多种编程语言
    2. 代码量大
    3. 算法知识丰富
    4. 数学强
    5. 做过很多项目
    6. 有团队精神
    7. 有创新意识
    8. 会选择行业方向
    9. etc…

  比尔·盖茨曾说过:“如果你想雇用一个工程师,看看他写的代码就够了。如果他没写过大量代码,就不要雇用他。”通过编写大量代码,能做到算法精妙合理、逻辑清晰透彻、代码喷涌而出、格式赏心悦目、挑 bug手到擒来,这是杰出程序员的基本功。ACM-ICPC 竞赛队员想达到在区域赛中获奖的水平,需要写5~10万行的代码。

算法竞赛入门

  • ACM-ICPC(Association for Computing Machinery-International Collegiate Programming Contest): ACM国际大学生程序设计竞赛
  • NOIP(National Informatics Olympic League): 全国信息学奥林匹克联赛

1. 竞赛语言和训练平台

Notice:其中“洛谷试炼场”题目分类比较全,是很好的基础学习平台。

2. 判题和基本的输入输出

  • OJ的判题
  1. OJ由机器自动判题,但机器并没有看懂代码的智能;即使是人工判题,人也很难短时间看懂程序。

  2. OJ判题是一种黑盒测试,它并不关心程序的内容,而是用测试数据来验证。

  • OJ的判题结果
    在这里插入图片描述
  • 打表
  1. 由于OJ不看程序内容,只关心程序的输入和输出,因此,在程序中不写详细过程,而是用printf或cout直接打印结果,也是允许的,这种方法叫“打表”。
  2. 另外,程序可能需要预处理数据,这个做法也称为“打表”。
  • 输入输出函数
  1. C++:输入函数cin,输出函数cout。

  2. C语言:输入函数scanf,输出函数printf。

  • 标准输入输出
    Description:OJ默认使用stdin和stdout,所以在提交程序时,并不用管OJ是怎么进行数据测试的。
    Notice:如果用到其它方法,会特别说明。
    提交过程图
  • 输入的结束-多组输入(以C语言为例)
  1. 默认结束(结束条件为无内容输入)

    int main(void){
         
    	int a, b;       <
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值