编程就图个乐还是搬砖去 2024-03-17 23:43 采纳率: 90.9%
浏览 8

csp2023-12第一题c++

img

img


#include<iostream>
using namespace std;
int main()
{
    int n,m;
    cin>>n>>m;
    int x[n+1][m];
    for(int i=0;i<m;i++)
    {
        x[0][i]=1000001;
    }
    for(int i=1;i<=n;i++)
    for(int j=0;j<m;j++)
    {
        cin>>x[i][j];
    }
//    for(int i=0;i<n+1;i++){
//    
//    for(int j=0;j<m;j++)
//    {
//        cout<<x[i][j]<<" ";
//    }
//    cout<<endl;}
    int result[1000]={0};
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            bool judge=true;
            for(int q=0;q<m;q++)
            {
                if(x[j][q]<=x[i][q])
                judge=false;
            }
            if(judge==true)
            {
                //cout<<i<<" "<<j<<endl;
                bool judge2=true;
                for(int aa=0;aa<m;aa++)
                {
                    if(x[j][aa]>x[result[i]][aa])
                    judge2=false;
                }
                if(judge2==true)
                
                {
                    //cout<<i<<" "<<j<<endl;
                    result[i]=j;
                }
                
            }
        }
    }
    for(int i=1;i<=n;i++)
    {
        cout<<result[i]<<endl;
    }
}

img

为什么我一个测试案例都没过?我看别人暴力都过了,唯一能看到的这个案例也没问题,一个晚上都找不出来哪有问题,求各位佬帮忙瞅一眼。

  • 写回答

5条回答 默认 最新

  • 关注

    编程就图个乐还是搬砖去 晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    在你提供的代码中,首先读取了仓库的个数n和位置编码的维数m。然后创建了一个二维数组x来存储仓库的位置编码。接下来,遍历输入的位置编码,将其存储到数组x中。

    然后,创建了一个结果数组result来存储每个仓库的上级仓库编号。对于每个仓库i,将其与其他仓库j进行比较,判断是否满足上级仓库的条件。如果满足条件,则根据编号,选择一个编号较小的仓库作为其上级仓库,并更新结果数组result。

    最后,将结果数组result输出。

    针对你提供的测试样例,代码可能存在以下问题:

    1. 输入格式不符合题目要求。根据题目要求,输入共n+1行,第一行是n和m的值,后面是n行的位置编码。你提供的测试样例中,只提供了一个位置编码3行,且格式不正确。

    解决方案:

    • 根据题目要求正确输入数据,包括n和m的值以及位置编码的行数和格式。
    1. 创建二维数组时,使用了变量x[n+1][m]来定义数组的大小,这可能导致数组越界。

    解决方案:

    • 根据题目要求,仓库的编号是从1开始的,所以可以将数组的大小定义为x[n][m],而不是x[n+1][m]。
    1. 对位置编码的比较有误。根据题目要求,在比较仓库i和仓库j的位置编码时,需要判断仓库j的每一维都大于仓库i的对应元素。你的代码中判断条件是x[j][q]<=x[i][q],这与题目要求相反。

    解决方案:

    • 修改判断条件为x[j][q]>=x[i][q]。

    通过以上修改,你可以尝试重新运行你的代码,并将测试样例输入按照正确的格式输入。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月17日

悬赏问题

  • ¥60 Cocos creator缓动问题
  • ¥40 微信小程序 使用vant组件ActionSheet 下拉面板,内容区域滚动会触发。scroll-view自定义下拉刷!即使设置停止下拉刷新也不行。
  • ¥15 专业问题提问,7月5号2点之前
  • ¥25 使用cube ai 导入onnx模型时报错
  • ¥15 关于#微信小程序#的问题:用一个网页显示所有关联的微信小程序数据,包括每个小程序的用户访问量
  • ¥15 root的安卓12系统上,如何使apk获得root或者高级别的系统权限?
  • ¥20 关于#matlab#的问题:如果用MATLAB函数delayseq可以对分数延时,但是延时后波形较原波形有幅度上的改变
  • ¥15 使用华为ENSP软件模拟实现该实验拓扑
  • ¥15 通过程序读取主板上报税口的数据
  • ¥15 matlab修改为并行