ACM找bug方案
测试数据和一些常见的数据都通过了然而还是wrong,可以试试下面的一些解决方案:
1.数据爆掉
① 可以改变数据类型,以容纳
② 修改当前算法,比如a*a/b可以改写成a/b*a
2 特殊情况,例如地图只有一行而算法默认的地图是多行的,如两个数刚好相等时,两个数都为0时等等
① 输入极端值测试,根据情况修改程序
②计算过程中算法太复杂,一般情况下代码越少越不容易出现错误,所以中间步骤越少越好,宁愿牺牲时间
3 精度问题
①使用强制转换,将int转换成double或将double转换成int都有可能会失去精度造成结果的差异
②使用一些函数操作浮点型数据,得到的结果并不是精确的值,比如pow()返回的值是大概值
③尽量不要用两个浮点去比较大小,尤其不能比较两个浮点数是否相等,因为两个浮点数可能不是精确的值
memset
(pei,-1,
sizeof
(pei))
,pei[key]==-1,会发现这个判断是否,将-1改成0就可以解决
4 题目看错了,尽管数据过去了,但是还是wrong,这时可以检查是不是看错了题目,这点很重要
5 其他情况
① 在有了ac程序的情况下,可以使用对拍来找出错误
先用 rand()生成随机数,读入文件中 freopen("F:\\in.txt", "r", stdout)
再用ac程序跑一遍in.txt,得到out.txt文件 freopen("F:\\in.txt", "r", stdin); freopen("F:\\out.txt", "w", stdout);
再用自己的程序跑一遍int.txt,得到out.txt文件 freopen("F:\\in.txt", "r", stdin); freopen("F:\\out2.txt", "w", stdout);
对比out.txt,out2.txt找出错误的数据
ACM找bug方案的更多相关文章
- 海王星给你好看!FineUI v4.0公测版发布暨《你找BUG我送书》活动开始(活动已结束!)
<FineUI v4.0 你找BUG我送书>活动已结束,恭喜如下三位网友获得由 FineUI 作者亲自翻译的图书<jQuery实战 第二版>! 奋斗~ 吉吉﹑ purplebo ...
- 第二次作业:找Bug
引子 我真的想了一个小时,上哪里去找bug.我昨天还留意到一个bug,今天就不见了.灵光不断,我想起来了.我就要找大公司的产品的bug... 第一部分 调研, 评测 体验. <腾讯桌球>是 ...
- 附加题程序找bug
private: void Resize(int sz){ ){ return; } if(maxSize != sz){ T *arr = new T[sz]; if(arr == NULL){ r ...
- 在无法单步调试的情况下找Bug的技巧
比如说你有一个大的模块A,其组成部分有B,C,D这3个小的模块,现在A出了一个BUG,因为某种原因的限制你无法单步调试.怎么较快地定位BUG发生的根源? 这里记录一下刚才我在找BUG的时候采用的思路, ...
- 找BUG
找一找BUG 一段代码,实现一个pop,push,和getmin都是O(1)的方法. 最初源代码 伙伴代码如下,代码的地址可以通过这个访问: Ubuntu Pastebin https://paste ...
- 判断空间上三个点是否共线问题【找bug篇】
判断空间上三个点是否在同一直线上[找bug篇] 作者:Vashon 时间:20150601 发布时间:20150718 一.拿到问题,首先分析并理清思路. 判断三点是否在同一条直线上需满足以下几点 ...
- 找bug的过程
关于昨天程序出差我找bug的过程记录 昨天才程序 https://www.cnblogs.com/pythonywy/p/11006273.html ├── xxxx │ ├── src.py │ └ ...
- 如何正确的找BUG
什么是BUG 漏洞是在硬件.软件.协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统.具体举例来说,比如在Intel Pentium芯片中存在的逻辑错误,在S ...
- 找bug hhh
http://oj.acm.zstu.edu.cn/JudgeOnline/problem.php?id=4434 没有用队列,疯狂找不到bug,后来发现很简单的判断时==n和m了,本来心花怒放,测试 ...
随机推荐
- 【待完成】[MapReduce_9] MapReduce 的 Shuffle 机制
0. 说明 待补充...
- 路由交换01-----ICMP协议
路由交换协议------ICMP ICMP协议 ICMP (InternetControl Message Protocol)协议是TCP/IP协议簇的核心协议之一,用来在网络设备之间传递各种差错和控 ...
- January 19th, 2018 Week 3rd Friday
As iron sharpens iron, so a friend sharpens a friend. 铁磨铁,可以磨砺出刀刃,朋友相交,亦应如此. When making friends wit ...
- java.lang.RuntimeException: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.demoDao.getXXX;
java.lang.RuntimeException: org.apache.ibatis.binding.BindingException: Invalid bound statement (not ...
- GUI概述与Frame演示
java 图形化界面的对象存在这两个包中: java.awt :Abstract WindowsToolkit(抽象窗口工具包)需要调用本地系统方法实现功能,属重量级控件 javax.swing:在a ...
- RelativeLayout 总结
1)参考元素获取:id: 2)位置关系设置: 3)对齐关系设置:
- JDBC驱动-MySQL
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</a ...
- Qt 编程指南 4 按钮
1按钮类的控件 逐个解释一下各个用途:(1)按压按钮 QPushButton最基本的按钮,点击该按钮通常是通知程序进行一个操作,比如弹个窗.下一步.保存.退出等等,这是经常用到的,操作系统里的对话框里 ...
- metamask源码学习-inpage.js
The most confusing part about porting MetaMask to a new platform is the way we provide the Web3 API ...
- MP实战系列(二)之集成swagger
其实与spring+springmvc+mybatis集成swagger没什么区别,只是之前写的太不好了,所以这次决定详细写. 提到swagger不得不提rest,rest是一种架构风格,里面有对不同 ...