明确规则

规则:以最少的时间过题

(这意味着0ms与1000ms是一样的)

了解规则,善用规则

虽然这个题我不会但是AC是没有问题的

--ACRush

大力出奇迹

  • 学会对拍数据,准备好对拍脚本:测试很重要;小数据很容易理解,大数据无法理解,给你也是白给
  • 打表找规律,打表直接提交,离线打表+在线打表

    敏锐的直觉 犀利的眼神 数学知识的灵活运用 各种姿势打表

弄清时间复杂度,理解数据提示

读题之后,数据的规模基本决定了算法的复杂度

通常 1e8的复杂度 是极限

1e6:n nlogn(慎用)

1e5、1e4:n n
logn n√n

1e3:n
n nnlogn(慎用)

对于1000ms来说的

当然还要考虑常数系数

有时恰恰相反,看上去暴力过不了,而实际上加上一些优化之后正好能过。

卡常数

  • 输入输出是整个程序的瓶颈,对于Java来说尤其如此

    数据规模较大时(>1e5)明显减少运行时间

    速度:getchar>scanf>cin

  • 递归改写:任何一个递归都可以用循环来实现,而循环比递归效率高

  • 广度优先效率比深度优先效率高

  • 要用memset,而非循环进行初始化

memset(num,0,sizeof(int)*n)
memset(num,-1, sizeof num);
memset(num,0x3f,sizeof num);
memset(num,0,sizeof num);
  • 预先开辟好大空间,完全不需要考虑内存释放,自己管理开辟的内存
  • 自己动手,丰衣足食。自己实现一些数据结构,如队列、链式前向星、栈

掌握必要的技能

  • 输入输出重定向
  • 位操作

善用工具

  • 模板,整理代码库
  • STL:一些数据结构、小函数非常有用
int loc=lower_bound(num,num+n,value)-num;
loc:排好序的数组里二分查找第一个>=value的下标 m=unique(num,num+n)-num;
unique将排好序的数组去重且顺序不变
m:去重后的数组大小
  • 使用宏

代码速度

手速=读题+思维+代码

不是你编码慢错误就可以少,不要把时间浪费在打字上,一有思路马上实现、快速实现,闻斯行之,行斯到之。

善用工具是提高代码速度的必由之路。君子生非异也,善假于物也。

ACM经验分享[转]的更多相关文章

  1. 使用latex撰写博士,硕士学位论文(浙大博士经验分享)

    使用latex撰写博士,硕士学位论文(浙大博士经验分享) 浙大博士:  个人感觉,还是要用latex来写.因为之前发过几篇word排版的中文论文,在参考文献的引用.文字格式调整上,实在是难受.如果坚持 ...

  2. 【原创经验分享】WCF之消息队列

    最近都在鼓捣这个WCF,因为看到说WCF比WebService功能要强大许多,另外也看了一些公司的招聘信息,貌似一些中.高级的程序员招聘,都有提及到WCF这一块,所以,自己也关心关心一下,虽然目前工作 ...

  3. 【原创经验分享】JQuery(Ajax)调用WCF服务

    最近在学习这个WCF,由于刚开始学 不久,发现网上的一些WCF教程都比较简单,感觉功能跟WebService没什么特别大的区别,但是看网上的介绍,就说WCF比WebService牛逼多少多少,反正我刚 ...

  4. (转)CMOS Sensor的调试经验分享

    CMOS Sensor的调试经验分享 我这里要介绍的就是CMOS摄像头的一些调试经验. 首先,要认识CMOS摄像头的结构.我们通常拿到的是集成封装好的模组,一般由三个部分组成:镜头.感应器和图像信号处 ...

  5. 关于启用 HTTPS 的一些经验分享(二)

    转载: 关于启用 HTTPS 的一些经验分享(二) 几天前,一位朋友问我:都说推荐用 Qualys SSL Labs 这个工具测试 SSL 安全性,为什么有些安全实力很强的大厂家评分也很低?我认为这个 ...

  6. 关于启用 HTTPS 的一些经验分享(一)

    转载: 关于启用 HTTPS 的一些经验分享(一) 随着国内网络环境的持续恶化,各种篡改和劫持层出不穷,越来越多的网站选择了全站 HTTPS.就在今天,免费提供证书服务的 Let's Encrypt ...

  7. Expression Blend4经验分享:文字公告无缝循环滚动效果

    这次分享一个类似新闻公告板的无缝循环滚动效果,相信很多项目都会应用到这个效果.之前我也百度了一下,网上的一些Silverlight的文字或图片滚动效果,都是一次性滚动的,如果要做到无缝循环滚动,多数要 ...

  8. Expression Blend4经验分享:自适应布局浅析

    今天分享一下Blend制作自适应分辨率布局的经验,大家先看下效果图: 这是一个标准的三分天下的布局,两侧的红色区域是背景区域,是用来干吗的呢,下面简单的分析一下,大家就明白了. 1.拿到一个项目,进行 ...

  9. Expression Blend4经验分享:制作一个简单的图片按钮样式

    这次分享如何做一个简单的图片按钮经验 在我的个人Silverlight网页上,有个Iphone手机的效果,其中用到大量的图片按钮 http://raimon.6.gwidc.com/Iphone/de ...

随机推荐

  1. iOS开发-UISwipeGestureRecognizer滑动手势

    滑动手势也算是iOS中交互中很重要的一部分,上下左右滑动,UISwipeGestureRecognizer可以很轻松的解决这个问题,没什么难度直接看代码吧: UISwipeGestureRecogni ...

  2. Mono Touch Table应用

    , UIApplication.SharedApplication.StatusBarFrame.Height                         , UIScreen.MainScree ...

  3. z-index的堆叠规则

    原文: https://www.cnblogs.com/starof/p/4424926.html 对于所有定位,最后都不免遇到两个元素试图放在同一位置上的情况.显然,其中一个必须盖住另一个.但,如何 ...

  4. sql server 向mysql前移数据-单引号问题

    sql server中的数据导出来 用两个单引号表示一个单引号,这样的格式可以录入到mysql中: 但是遇到特殊的中文字符,例如顿号等,不能正确的显示两个单引号: mysql导出来的数据用反斜线和一个 ...

  5. 《OpenGL® ES™ 3.0 Programming Guide》读书笔记1 ----总览

    OpenGL ES 3.0 Graphics Pipeline OpenGL ES 3.0 Vertex Shader Transform feedback: Additionally, OpenGL ...

  6. php获取当前时间的方法

    1.获取当前时间 date('Y-m-d H:i:s', time())   2.字符串转时间 date('Y-m-d H:i:s',strtotime('2018-8-21 22:00:00'))

  7. Python小任务 - 如何编写指定时间执行的Python小程序

    我们在平时的工作中经常会遇到这样的需求,需要再某个时间点执行一段程序逻辑. 那么,在python中我们是怎么做的呢? 下面看代码: waitDesignatedTimeToRun.py import ...

  8. JavaScript Array 对象扩展方法

    /** 删除数组中指定索引的数据 **/ Array.prototype.deleteAt = function (index) { if (index < 0) { return this; ...

  9. LintCode: Single Number

    C++ (1)异或操作 3^3=0 (2)for (auto &i : Obejuct) {} class Solution { public: /** * @param A: Array o ...

  10. Nutch的安装和配置

    Nutch是一个Java实现的网络爬虫.Nutch的安装可以使用二进制包,也可以使用源代码安装.这里介绍用二进制包安装. 1. 下载apache-nutch-1.12-bin.tar.gz,并且解压, ...