ACM Attention
2015-11-03 16:34
295 查看
ACM Attention
读题
读题一定要仔细,尤其是样例很水的时候,直接看输入输出是一个坏习惯注意题目的时限和内存要求,对于某些问题,时限和内存得要求很特殊
读题的时候最好讲题目表打成数学公式,有利思考
大模拟之列最好画图标,简介的表示一下问题
注意输出的格式,精度要求,和单词拼写
思考
没思路
程序的范围基本已经暗示了本体用什么算法去做不妨多推几个样例,找找规律,有些题目可能就是找规律
谢谢数学公式,将公式变换一下,可能就找到了压缩复杂度的方法
区间[a,b]的问题可以转换成[0,b]−[0,a]的问题
暴力吧暴力,七分天注定,三分靠胆量
有思路
不要觉得这题和以前做过的题目类似就会了,可能小细节的变动会让做法完全不同考虑问题一定要补充不漏
注意一下细节问题,如溢出等等
思路了然于胸的时候再动手编程
编程
溢出
问题:i∗i<longlong时,很有可能因为i∗i溢出而死循环对策:最好将变量全部设置成longlong
初始化
问题:vector<int>,map<int,double>….在多组样例的时候一定初始化对策:最好在一组输入开始的时候就初始化
栈,队列弹出
问题:stack<int> Stack; .... while() { Stack.push(); .... Stack.pop(); }
在没有检测Stack是否为empty()就直接pop()很容易RE
对策:stack,queue..类似的数据结构在pop()之前一定要检查是否isempty()
浮点型输出
问题:有些题目要求四舍五入,有些题目要求舍尾对策:printf()默认为四舍五入,当然对于特殊精度的四舍五入我们可以+0.5,而舍尾我们可以转换为int再输出
向前遍历
问题:向前遍历的时候很容易写成i++造成死循环对策:一定要记住向前遍历是i−−
常量类型
问题:系统默认是将1当成int来处理的,于是会出现类型错误对策:尽量将double,longlong类型的变量放在前边,迫不得已时double–1.0,longlong–1.0LL
以两个0为EOF
问题:以两个0为EOF写成:写成N+M==0
逻辑短路
问题:C语言中if()中用&&有可能出现逻辑短路问题对策:知道问题后多注意注意
其他
仔细想一想,有没有除了分类讨论之外的方法,分类讨论很容易WA以最坏的情况推测输入,如给出区间L,R注意题目没有说明的话L>R也是有可能的
在没有提高复杂度的情况下,简洁比性能更重要
不要用类,用结构体
对于一个值Ai可能有几次输入,注意选取一个最优值
相关文章推荐
- Andoroid 打开SQLite数据库软件
- unity连接sqlite数据库操作
- Hibernate持久化对象的解析1
- 表空间和表分区的理解
- Activity横竖屏切换时生命周期变化
- Linq 左连接 右连接 内连接
- IOS开发中NSRunloop跟NSTimer的问题
- Activity的生命周期
- C# 公关类(全)
- 正则表达式30分钟入门教程[转]
- 网络抓包工具 Charles & Fiddler
- ENSP 提示注册不成功的解决方法
- 获取当前时区时间 iOS
- 运用QRegExp 解析字符串
- django--静态文件路径和模板路径配置
- android学习教程 第二期:安卓的编译方式
- VMWare LINUX虚拟机设置固定IP上网方法
- Android组件——广播
- Codeforces Round #328 (Div. 2)A. PawnChess
- Python正则表达式指南