鱼C论坛

 找回密码
 立即注册
查看: 2831|回复: 6

[已解决]这道题目为什么全WA

[复制链接]
发表于 2022-8-3 19:55:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目: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[w][x][h] = {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[a][b][c] = 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[a][b][c] == 0) s++;//数剩下的立方体的个数
        cout<<s;
        return 0;
}

测试点没有问题,但是交上去就全部WA,请问是什么原因
最佳答案
2022-8-3 21:31:43
首先,第 10 行,输入顺序错了,看一下题目中的说明(奇怪,输入顺序错了样例应该也是会得到错误的结果的);另外还有一个不确定的问题:看输入范围约束,似乎题目中的坐标是从 1 开始的,而您使用的数组下标是从 0 开始的,不过看说明中的例子,如果 4 x 4 x 4 的立方体中 ((1, 1, 1), (2, 2, 2)) 表示的是“中间的 8 块”,那么坐标又应该是从 0 开始的,这一点可能需要您再测试一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-3 21:31:43 | 显示全部楼层    本楼为最佳答案   
首先,第 10 行,输入顺序错了,看一下题目中的说明(奇怪,输入顺序错了样例应该也是会得到错误的结果的);另外还有一个不确定的问题:看输入范围约束,似乎题目中的坐标是从 1 开始的,而您使用的数组下标是从 0 开始的,不过看说明中的例子,如果 4 x 4 x 4 的立方体中 ((1, 1, 1), (2, 2, 2)) 表示的是“中间的 8 块”,那么坐标又应该是从 0 开始的,这一点可能需要您再测试一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-10 04:17:57 | 显示全部楼层
楼主是否要继续跟进,或者问题已经解决?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-10 10:28:45 | 显示全部楼层
liuzhengyuan 发表于 2022-8-10 04:17
楼主是否要继续跟进,或者问题已经解决?

不知道为啥,这个帖子有人回复了,但是我这里没有提醒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-23 08:27:30 | 显示全部楼层
dolly_yos2 发表于 2022-8-3 21:31
首先,第 10 行,输入顺序错了,看一下题目中的说明(奇怪,输入顺序错了样例应该也是会得到错误的结果的) ...


又写了一遍,测试点还是全WA,但还是不知道有啥问题
#include<iostream>
#define MAXN 25
using namespace std;
int w, x, h;
int cube[MAXN][MAXN][MAXN];
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[i][j][k] = 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[i][j][k] == 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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-23 13:26:46 | 显示全部楼层
tommyyu 发表于 2022-9-23 08:27
又写了一遍,测试点还是全WA,但还是不知道有啥问题

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

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
tommyyu + 5 + 5 + 3 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-23 13:32:47 | 显示全部楼层
本帖最后由 tommyyu 于 2022-9-23 13:41 编辑
dolly_yos2 发表于 2022-9-23 13:26
没太仔细看,不过您是不是再仔细看一下第 30 行?


谢谢,还是我太粗心了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-28 03:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表