ACM经验分享[转]
明确规则
规则:以最少的时间过题
(这意味着0ms与1000ms是一样的)
了解规则,善用规则
虽然这个题我不会但是AC是没有问题的
--ACRush
大力出奇迹
- 学会对拍数据,准备好对拍脚本:测试很重要;小数据很容易理解,大数据无法理解,给你也是白给
- 打表找规律,打表直接提交,离线打表+在线打表
敏锐的直觉 犀利的眼神 数学知识的灵活运用 各种姿势打表
弄清时间复杂度,理解数据提示
读题之后,数据的规模基本决定了算法的复杂度
通常 1e8的复杂度 是极限
1e6:n nlogn(慎用)
1e5、1e4:n nlogn n√n
1e3:nn 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经验分享[转]的更多相关文章
- 使用latex撰写博士,硕士学位论文(浙大博士经验分享)
使用latex撰写博士,硕士学位论文(浙大博士经验分享) 浙大博士: 个人感觉,还是要用latex来写.因为之前发过几篇word排版的中文论文,在参考文献的引用.文字格式调整上,实在是难受.如果坚持 ...
- 【原创经验分享】WCF之消息队列
最近都在鼓捣这个WCF,因为看到说WCF比WebService功能要强大许多,另外也看了一些公司的招聘信息,貌似一些中.高级的程序员招聘,都有提及到WCF这一块,所以,自己也关心关心一下,虽然目前工作 ...
- 【原创经验分享】JQuery(Ajax)调用WCF服务
最近在学习这个WCF,由于刚开始学 不久,发现网上的一些WCF教程都比较简单,感觉功能跟WebService没什么特别大的区别,但是看网上的介绍,就说WCF比WebService牛逼多少多少,反正我刚 ...
- (转)CMOS Sensor的调试经验分享
CMOS Sensor的调试经验分享 我这里要介绍的就是CMOS摄像头的一些调试经验. 首先,要认识CMOS摄像头的结构.我们通常拿到的是集成封装好的模组,一般由三个部分组成:镜头.感应器和图像信号处 ...
- 关于启用 HTTPS 的一些经验分享(二)
转载: 关于启用 HTTPS 的一些经验分享(二) 几天前,一位朋友问我:都说推荐用 Qualys SSL Labs 这个工具测试 SSL 安全性,为什么有些安全实力很强的大厂家评分也很低?我认为这个 ...
- 关于启用 HTTPS 的一些经验分享(一)
转载: 关于启用 HTTPS 的一些经验分享(一) 随着国内网络环境的持续恶化,各种篡改和劫持层出不穷,越来越多的网站选择了全站 HTTPS.就在今天,免费提供证书服务的 Let's Encrypt ...
- Expression Blend4经验分享:文字公告无缝循环滚动效果
这次分享一个类似新闻公告板的无缝循环滚动效果,相信很多项目都会应用到这个效果.之前我也百度了一下,网上的一些Silverlight的文字或图片滚动效果,都是一次性滚动的,如果要做到无缝循环滚动,多数要 ...
- Expression Blend4经验分享:自适应布局浅析
今天分享一下Blend制作自适应分辨率布局的经验,大家先看下效果图: 这是一个标准的三分天下的布局,两侧的红色区域是背景区域,是用来干吗的呢,下面简单的分析一下,大家就明白了. 1.拿到一个项目,进行 ...
- Expression Blend4经验分享:制作一个简单的图片按钮样式
这次分享如何做一个简单的图片按钮经验 在我的个人Silverlight网页上,有个Iphone手机的效果,其中用到大量的图片按钮 http://raimon.6.gwidc.com/Iphone/de ...
随机推荐
- Ios开发之协议protocol
Protocol是ios开发中的一个难点也是一个重点,要想使用好,或者理解好它,可能需要时间的累积.今天我们就通过一个例子来简单的看一下,怎么样使用protocol. 我们今天用的例子就是模拟电脑插入 ...
- impala 导出CSV 或excel
1.介绍 impala-shell导入导出 参数说明: • -q query (--query=query) 从命令行执行查询,不进入impala-shell • -d default_db (--d ...
- 【cocos2dx中Node类getParent和getChildByTag()】学习体会
參考http://cn.cocos2d-x.org/doc/cocos2d-x-3.0/d3/d82/classcocos2d_1_1_node.html 当中和child.parent有关的成员函数 ...
- Zend Studio 实用快捷键大全
编辑功能 组合键 实现功能 适用条件 Ctrl+/ 单行注释.当前为php代码时,则在光标所在行添加双斜杠行注释,选择多行则每一行都添加双斜杠:而当代码为html时则在行前后添加<!-- --& ...
- capwap学习笔记——初识capwap(二)
2.5.1 AC发现机制 WTP使用AC发现机制来得知哪些AC是可用的,决定最佳的AC来建立CAPWAP连接. WTP的发现过程是可选的.如果在WTP上静态配置了AC,那么WTP并不需要完成AC的发现 ...
- window下配置Apache2服务器
1:去Apache.org下载安装包 http://httpd.apache.org/ 2:解压到某一个目录 3:修改httpd.conf(Apache的解压目录和端口号) 4:管理员方式启动cmd执 ...
- mysql insert 主键 重复问题
转自:http://blog.163.com/liuweiyoung@126/blog/static/173131045201222122732435/ mysql中insert into和repla ...
- GitHub万星项目:黑客成长技术清单
最近有个GitHub项目很火,叫"Awesome Hacking",这个项目是由Twitter账号@HackwithGithub 维护,喜欢逛Twitter的安全爱好者应该了解,在 ...
- Objective-C编程 - 关于Block的要点
1. 首先,我们快速过一下,什么是Block? Block是一段代码,它在OC中以^开头,可以有返回值,和参数列表,但就是没有名字. 所以,你可以把它认为是匿名函数. 事实上,它和Swift中的闭包( ...
- HtmlAgilityPack 详细使用
使用HtmlAgilityPack抓取网页数据 http://www.cnblogs.com/yxlblogs/p/3499420.html http://www.cnblogs.com/xdpxyx ...