zoukankan      html  css  js  c++  java
  • 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找出错误的数据
     
  • 相关阅读:
    创建线程的三种方式
    SpringMVC:拦截器和POST中文乱码问题
    SpringMVC:静态资源访问
    SpringMVC :转发、重定向、RedirectAttributes
    SpringMVC:Controller的编写
    SpringMVC——DispatcherServlet
    SpringMVC的执行流程
    第一个SpringMVC程序(注解实现)
    第一个SpringMVC程序
    springsecurity学习
  • 原文地址:https://www.cnblogs.com/carcar/p/8276142.html
Copyright © 2011-2022 走看看