4 条题解

  • 2
    @ 2025-3-14 18:51:39

    根据数学推理,当 xmod24=0x \bmod 24 = 0 时,a=1324xa=\frac{13}{24}xb=724xb=\frac{7}{24}xc=16x c=\frac{1}{6}x

    于是显然想到以下代码:(语言:Python)

    s=int(input())
    print(s*13//24,s*7//24,s*4//24)
    

    然后自信提交,WA 10 pts。link

    联想到,在这一篇题解中,我们学会了查看错误信息。

    查看错误信息,发现输出会比标准答案大 1 或 2。

    那么先做除法,后做乘法吗?(语言:python)

    s=int(input())
    print(s//24*13,s//24*7,s//6)
    

    并非如此。我们只获得了 50 分的成绩。link

    但是,当我提交以下代码时,有 5 个测试点返回了 1。 (语言:C++,代码大意:如果 xmod3=0x \bmod 3 = 0 则不输出,显示Wrong Answer Standard answer longer than user output.;否则返回 1 ,显示Runtime Error 您的程序返回了1。

    然后有 5 个测试点返回了 1。显然本题是错题。

    然后想到可以在网上寻找有用的资料,在这里找到了两篇题解。

    其中一篇是(语言:C++)

    #include <stdio.h>
    #define ll long long
    int main()
    {
        ll x=0;
        scanf("%lld",&x);
        int a=x/3;
        int b=x/3;
        int c=x/3;
        //第三次分钱,我们逆向思维先从最后一次都相等开始反向分
        a/=2;
        b/=2;
        c=a+b+c;
        //第二次分
        a/=2;
        c/=2;
        b=a+b+c;
        //第一次分
        b/=2;
        c/=2;
        a=a+b+c;
    
        printf("%d %d %d",a,b,c);
    
        return 0;
    }
    

    题解提示我们可以逆向推理。把题解复制下来也可以通过本题。

    但是经过检验(link),AC 代码中的 a+b+c 并不等于输入的x,所以本题确实是一道错题。

    那我们通过这道题还能学到什么呢?正难则反的思想吗?并不是。我们通过这题只能学到一种能力——从网上检索资料的能力,而这种能力是不能应用到考试里的。

    • 2
      @ 2025-3-14 18:36:15

      正难则反

      #include<bits/stdc++.h>
      #define ll long long
      #define R register
      #define F(i,a,b) for(int i = (a);i<=(b);i++)
      using namespace std;
      inline int read(){R int x=0,t=1;R char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') t=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}return x*t;}
      const int N=2e5+10;
      
      signed main()
      {
      	int n=read();
      	int x,y,z;
      	x=y=z=n/3;
      	z+=(x/2+y/2);
      	x/=2;
      	y/=2;
      	y+=(x/2+z/2);
      	x/=2;
      	z/=2;
      	x+=(y/2+z/2);
      	y/=2;
      	z/=2;
      	cout << x << " " << y << " " << z << '\n';
      	return 0;
      }
      /*
      
      */
      
      
      • 1
        @ 2025-5-22 8:46:54

        错题

        • -1
          @ 2025-7-14 13:00:08

          #Python x=int(input()) a=b=c=x//3 a=a//2 b=b//2 c=c+a+b a=a//2 c=c//2 b=a+b+c b=b//2 c=c//2 a=a+b+c print(a,b,c)

          • 1

          信息

          ID
          538
          时间
          1000ms
          内存
          64MiB
          难度
          8
          标签
          递交数
          139
          已通过
          22
          上传者