一道题Wrong Answer之后该何去何从?
写程序手不稳是个大毛病,往往会让一份能AC的代码变成99.995%正确,失之毫厘谬以千里,近期十场个人赛非常少有能一次AC的经历,细致想想除了根本逻辑上的错误。大概都是跪在这些细节上:
1.输出格式,输入格式是否符合规范。有没有Case #?是否有多余空格输出?I64d or lld?输出浮点数尽量不要用cout。
2.i和j,n和m,l和r有没有写混了的。。(今晚检查了两小时的程序发现i<=m写成了i<=n...吾之内心差点儿崩溃orz。
。
3.边界问题。从0開始还是从1開始?递推式有没有越界?不要使用cnt数组来累计某个值出现多少次,最好使用map来映射。。
4.爆int,爆longlong。数论题尤其要注意,每次測试滚键盘来几个大数字。爆int的话实在拿不准数据范围,在内存同意的情况下#define int long long;爆long long的话把每一个乘法操作模除大素数(必要情况下加法操作最好也要。
5.对于不合法输入或无解情况的处理。。
是输出-1还是0还是no solution好好读题。
6.某些应该凝视掉的句子没凝视,freopen什么的。。
7.特判情况遗漏。
8.数据还没全然读入就贸然结束程序。。尽管有些时候答案已经出来了。
解决的方法还是静下心来,思路乱的时候手不要碰键盘,太庞大太复杂的流程分模块来写,先想好例子再去写代码。
眼下组队赛要開始了,不能坑队友。
附:
debug流程(from知乎:
1、又一次通读一遍代码,检查初始化,检查输出格式,需不须要输出CASE等
2、检查常常出现的一些手误,两重for循环中i,j用混。多重for循环中i被多次使用。long long相关问题等。
3、检查数据范围。又一次读一遍题,确认题意。思考边界数据对代码的影响。数组是否开小,是否爆int等。
4、进行暴力对跑。写个暴力但保证正确的版本号,利用小数据和代码对跑。
5、假设不是个人赛,找队友或者其它朋友帮忙看代码。把代码给他们解释,让他们想有没有问题。
假设是在比赛中,如今能够临时放弃这一题先看别的题了。之后有空再回来看。
。
6、假设别人过了就对照两份代码,或者直接对跑
7、睡一觉,补下番,来两把lol。明天再看一遍。。
8、搜数据。
。。。
9、搜题解。。。。
10、默念一句:数据有问题。关题目。
一道题Wrong Answer之后该何去何从?的更多相关文章
- SPOJ 1557. Can you answer these queries II 线段树
Can you answer these queries II Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 https://www.spoj.com/pr ...
- 6779. Can you answer these queries VII - SPOJ
Given a tree with N ( N<=100000 ) nodes. Each node has a interger value x_i ( |x_i|<=10000 ). ...
- bzoj 2482: [Spoj GSS2] Can you answer these queries II 线段树
2482: [Spoj1557] Can you answer these queries II Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 145 ...
- spoj gss2 : Can you answer these queries II 离线&&线段树
1557. Can you answer these queries II Problem code: GSS2 Being a completist and a simplist, kid Yang ...
- SPOJ GSS3-Can you answer these queries III-分治+线段树区间合并
Can you answer these queries III SPOJ - GSS3 这道题和洛谷的小白逛公园一样的题目. 传送门: 洛谷 P4513 小白逛公园-区间最大子段和-分治+线段树区间 ...
- Wrong Answer,Memory Limit Exceeded
错误原因: 1.在递归的时候,递归函数中忘记加返回return. 1.1做题时遇到一个奇葩错误,把它记到这里,看代码: 代码1:错误,用c++提交wrong answer,但是用g++提交却accep ...
- Codeforces Round #602 (Div. 2, based on Technocup 2020 Elimination Round 3) F2. Wrong Answer on test 233 (Hard Version) dp 数学
F2. Wrong Answer on test 233 (Hard Version) Your program fails again. This time it gets "Wrong ...
- 2019Hdu多校第三场:1007 Find the answer(multiset 解法)
原题链接: Find the answer c++中,multiset是库中一个非常有用的类型,它可以看成一个序列,插入一个数,删除一个数都能够在O(logn)的时间内完成,而且他能时刻保证序列中的数 ...
- G - Can you answer these queries? & N - 花神游历各国
A lot of battleships of evil are arranged in a line before the battle. Our commander decides to us ...
随机推荐
- Easy UI下拉列表默认选中(多行)与为文本框赋值
1.为单行文本框赋值 var data2 = $('#LoadArea').combobox("getData"); if (data2) { $('#id).combobox(' ...
- java多线程创建-Thread,Runnable,callable和threadpool
java创建多线程的方式有许多种,这里简要做个梳理 1. 继承Thread类 继承java.lang.Thread类,创建本地多线程的类,重载run()方法,调用Thread的方法启动线程.示例代码如 ...
- Python之argparse模块
argparse 命令行参数解析模块,原optparse已经停止开发,建议替换为argparse 在python2.7后默认加入 parser ArgumentParser默认解析来源sys.argv ...
- iBatis.net技术实践
随着大数据技术的兴起和快速发展,人们更多的开始关注HDFS.HBase.Hive等技术.但是谈到强一致性,我们又不得不回归现实,只能继续沿用RDBMS存储强一致性的数据.我们日常接触到的绝大多数的应用 ...
- 使用dropwizard(6)-国际化-easy-i18n
前言 Dropwizard官方文档并没有提供国际化的模块,所以只能自己加.Spring的MessageResource用的很顺手,所以copy过来. Easy i18n 在整合Dropwizard的时 ...
- vim操作命令
一,命令模式下 文件顶部: gg 文件底部: G 删除当前行:dd 删除当前行,并进入INSERT模式: cc 取消删除:u
- java 中 “文件” 和 “流” 的简单分析
java 中 FIle 和 流的简单分析 File类 简单File 常用方法 创建一个File 对象,检验文件是否存在,若不存在就创建,然后对File的类的这部分操作进行演示,如文件的名称.大小等 / ...
- 内存泄漏监测-LeakCanary
内存泄漏监测方法之使用LeakCanary LeakCanary出处: github:https://github.com/square/leakcanary/issues square 公司 这个公 ...
- ExpandableListView使用
相关博客 ExpandableListView使用 博客内容记录 场景 有时候,使用ListView并不能满足应用程序所需要的功能.有些应用程序需要多组ListView,这时候我们就要使用一种新的控件 ...
- git使用(上)-----基本的方法
git应该是一项必须要掌握的工具.先简述它和SVN的区别 SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活 ...