当前位置: 首页 > 知识库问答 >
问题:

不知道SPOJ上哪些荒谬的边界案例给出了错误的答案

红弘盛
2023-03-14

这是完整的代码,

  package spoj;
  import java.util.*;
  import java.util.regex.*;
  import java.text.*;
  import java.math.*;
  import java.awt.geom.*;
  import java.io.*;


  public class ABSURD {
  public static void main(String[] args) throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    Scanner sc = new Scanner(System.in);
    String in = sc.nextLine();
    long t = Long.parseLong(in);
    while(t>0)
    {
        String n;
        n = sc.nextLine();

        int i= n.length()-1;
        while(i>=0)
        {
            if(n.charAt(i) != '0')
                break;
            i--;
        }
        long k = Long.parseLong(n);
        double x1 = (.95 * (double)k);
        double x2 = (1.05*(double)k);
        long x = (long)x1;
        long y = (long)x2;
        if((double)x == x1)
            x = x-1;
       System.out.println(x+" "+y);
        n = n.substring(0,i+1);
       // System.out.println(n);
        if(n.equals(""))
        {
            System.out.println("not absurd");
            t--;
            continue;

        }


        String a = Long.toString(x);
        int la = a.length();
        String b = Long.toString(y);
        int lb = b.length();

        int absurdity  = n.charAt(n.length()-1) == 5?2*n.length()-1:2*n.length();
        //System.out.println(absurdity);
        String answer = "not absurd";
        if(n.length() == 1)
        {

                answer = "not absurd";
        }
        else
        {
            if(la<lb)
            {
                if(absurdity >2)
                    answer = "absurd";
            }

            if(lb == la)
            {
                int j=0;
                while(j<la)
                {
                    if(a.charAt(j) != b.charAt(j))
                        break;
                    j++;

                }
            int absurd = a.charAt(j)<'5' && b.charAt(j)>='5'?2*(j+1)-1:2*(j+1);
            //System.out.println(absurd);
            if(absurd<absurdity)
                answer = "absurd";

            }

        }


        System.out.println(answer);

        t--;

    }
    }

  }

这个问题是荒谬的。与问题相关的链接是:http://www.spoj.com/problems/ABSURD/.我不知道哪个测试用例失败了,我已经尝试了很多。基本上,我们必须减少尾随的零,并根据给定的规则计算荒谬性。然后我们必须确定在给定的范围内是否存在一个整数,其荒谬性小于给定数字的荒谬性。

共有1个答案

仇龙光
2023-03-14

我在你的代码中看到了一些潜在的错误。我不会在这里讨论它们,但会让你了解自己(好吧,这就是练习的全部要点)。但是,我将给出一些代码产生错误结果的情况。我希望这将使你能够继续进行下去。

  1. 15(输出不应该是荒谬的,您输出的是荒谬的)
 类似资料:
  • 下面是SPOJ的一个归档问题。示例测试用例通过了,但我在提交时得到了W/A。我缺少一些测试用例(testCase)。需要帮助来找出我错过了什么案例和/或我做错了什么。 瓢虫艾达正在和她的朋友维尼特玩除数游戏。这个游戏有以下规则。他们之间有一堆石头。移动中的玩家可以选择至少1块,最多σ(N)块石头(其中σ(N)代表N的除数)。显然,N在每次移动后都会发生变化。得不到任何石头(N==0)的人输了。 因

  • 给定一个0和1的数组,我们最多可以将K个值从0更改为1。 返回仅包含1的最长(连续)子数组的长度。 例1: 例2: 注: https://leetcode.com/problems/max-consecutive-ones-iii/ 这是问题链接。在第一个测试用例中,我得到了输出9,但应该是6。我不知道哪里出了问题?

  • 我试着在SPOJ上解决一个问题,我们必须简单地找到给定数组a的最长递增子序列的长度。 我用动态规划O(n^2)算法解决了这个问题,这个解决方案被接受了。。以下是被接受的代码: 但是当我试图用第二种方法(LINK)解决它时,:: ,我得到了错误的答案。 这是我的c代码 我不知道为什么我会得到错误的答案。你能帮我找到这个错误吗。或者站点中给出的基于LCS的LIS算法不正确??

  • 这是我的代码。它正在传递问题语句中给出的测试用例。问题链接:http://www.spoj.com/problems/ACPC10D/tri[i][j]存储从tri[0][1]到达索引(i, j)的最小值。

  • 问题内容: 我计算出以下内容: 即使执行10.0-9.2也可以得到上述结果。为什么多余的7会出现在结果中? 我在python 3.2上。 问题答案: 浮点算法基于数字的二进制近似,因此存在一些内置问题。 有一个很好的解释在Python文档。 如果您需要更准确的答案,则可以签出该模块。

  • 我正在使用DataTable组件,我非常简单的目标是使用内联命令按钮删除一行。这是dataTable组件的代码。 “dobavljac”是我需要使用action=“#{dobavljacMB.obrisi(dobavljac)}”删除的实体 具有删除功能"obrisi"的托管bean类如下: Dobavljac类是一个简单的POJO类,由IDE生成,因此无需发布。问题是,当调用该方法时,它抛出一个