1 条题解

  • 0
    @ 2025-4-8 20:29:35

    题解

    我们需要创建一个10x10的网格,其中行1-8包含车辆(速度1-9),行0和行9为空。车辆在行1-4向左移动,行5-8向右移动。以下是生成测试数据的代码:

    #include <iostream>
    #include <vector>
    #include <cstdlib>
    #include <ctime>
    
    using namespace std;
    
    int main() {
        srand(time(0)); // 设置随机种子
    
        // 输出START标记
        cout << "START" << endl;
    
        // 生成8行车道数据
        for (int i = 0; i < 8; ++i) {
            for (int j = 0; j < 10; ++j) {
                // 随机决定是否放置车辆(约50%概率)
                if (rand() % 2 == 0) {
                    // 放置车辆,速度为1-9
                    cout << (rand() % 9 + 1);
                } else {
                    // 空位
                    cout << 0;
                }
                // 输出空格分隔,除了最后一列
                if (j < 9) cout << " ";
            }
            cout << endl;
        }
    
        // 输出END标记
        cout << "END" << endl;
    
        return 0;
    }
    

    代码解释

    1. 随机种子设置:使用当前时间作为随机种子,确保每次运行生成不同的数据。
    2. START标记:输出数据开始的标记。
    3. 车道数据生成
      • 遍历8行(行1-8)
      • 每行10列,随机决定是否放置车辆(约50%概率)
      • 如果放置车辆,随机生成速度1-9
      • 使用空格分隔各列数据
    4. END标记:输出数据结束的标记。

    生成数据示例

    运行上述代码可能生成如下测试数据:

    START
    3 0 0 0 0 3 0 0 0 3
    1 0 0 0 1 0 0 0 0 0
    4 0 0 0 0 0 0 4 0 0
    0 0 2 0 0 0 0 0 0 2
    5 0 0 0 0 0 0 0 0 0
    0 2 0 0 0 0 0 2 0 2
    0 0 0 4 0 0 0 0 0 0
    0 2 0 0 0 0 0 0 0 0
    END
    

    数据特点

    1. 随机性:车辆位置和速度都是随机生成的。
    2. 符合题目要求
      • 行1-4的车辆将向左移动
      • 行5-8的车辆将向右移动
      • 速度值为1-9
    3. 密度控制:约50%的格子有车辆,可以根据需要调整概率。
    • 1

    信息

    ID
    1222
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    2
    已通过
    1
    上传者