tommyyu 发表于 2022-8-3 19:55:36

这道题目为什么全WA

题目:https://www.luogu.com.cn/problem/P5729

我的代码:
#include<iostream>
using namespace std;
int main()
{
      int w, x, h; cin>>w>>x>>h;                //输入w、x、h
      int square = {0};                //用一个3维数组模拟长方体,初始化所有存在的小正方体为0,不存在的为1
      int n; cin>>n;                            //输入n
      for(int i=0; i<n; ++i) {
                int x1, x2, y1, y2, z1, z2;
                cin>>x1>>x2>>y1>>y2>>z1>>z2;
                for(int a = x1; a <= x2; ++a)         
                        for(int b = y1; b <= y2; ++b)
                              for(int c = z1; c <= z2; ++c)
                                        square = 1;   //删除这些立方体
      }
      int s = 0;
      for(int a = 0; a < w; ++a)
                for(int b = 0; b < x; ++b)
                        for(int c = 0; c < h; ++c)
                              if(square == 0) s++;//数剩下的立方体的个数
      cout<<s;
      return 0;
}

测试点没有问题,但是交上去就全部WA,请问是什么原因

dolly_yos2 发表于 2022-8-3 21:31:43

首先,第 10 行,输入顺序错了,看一下题目中的说明(奇怪,输入顺序错了样例应该也是会得到错误的结果的);另外还有一个不确定的问题:看输入范围约束,似乎题目中的坐标是从 1 开始的,而您使用的数组下标是从 0 开始的,不过看说明中的例子,如果 4 x 4 x 4 的立方体中 ((1, 1, 1), (2, 2, 2)) 表示的是“中间的 8 块”,那么坐标又应该是从 0 开始的,这一点可能需要您再测试一下。

liuzhengyuan 发表于 2022-8-10 04:17:57

楼主是否要继续跟进,或者问题已经解决?

tommyyu 发表于 2022-8-10 10:28:45

liuzhengyuan 发表于 2022-8-10 04:17
楼主是否要继续跟进,或者问题已经解决?

不知道为啥,这个帖子有人回复了,但是我这里没有提醒

tommyyu 发表于 2022-9-23 08:27:30

dolly_yos2 发表于 2022-8-3 21:31
首先,第 10 行,输入顺序错了,看一下题目中的说明(奇怪,输入顺序错了样例应该也是会得到错误的结果的) ...

又写了一遍,测试点还是全WA,但还是不知道有啥问题{:10_292:}
#include<iostream>
#define MAXN 25
using namespace std;
int w, x, h;
int cube;
void split(int x1, int y1, int z1, int x2, int y2, int z2) {
        for(int i=x1; i<=x2; ++i) {
                for(int j=y1; j<=y2; ++j) {
                        for(int k=z1; k<=z2; ++k)
                                cube = 1;
                }
        }
}
int count() {
        int c=0;
        for(int i=1;i<=w;++i) {
                for(int j=1;j<=x;++j) {
                        for(int k=1;k<=h;++k)
                                if(cube == 0) c++;
                }
        }
        return c;
}
int main()
{
        int n;
        cin>>w>>x>>h>>n;
        for(int i=0; i<n; ++i) {
                int x1, y1, z1, x2, y2, z2;
                cin>>x1>>y1>>z2>>x2>>y2>>z2;
                split(x1, y1, z1, x2, y2, z2);
        }
        cout<<count();
        return 0;
}

dolly_yos2 发表于 2022-9-23 13:26:46

tommyyu 发表于 2022-9-23 08:27
又写了一遍,测试点还是全WA,但还是不知道有啥问题

没太仔细看,不过您是不是再仔细看一下第 30 行?

tommyyu 发表于 2022-9-23 13:32:47

本帖最后由 tommyyu 于 2022-9-23 13:41 编辑

dolly_yos2 发表于 2022-9-23 13:26
没太仔细看,不过您是不是再仔细看一下第 30 行?

谢谢,还是我太粗心了{:10_266:}
页: [1]
查看完整版本: 这道题目为什么全WA