70分求助(^.<!),7,8,9,10,11,13,六个tle
查看原帖
70分求助(^.<!),7,8,9,10,11,13,六个tle
1292265
Zzz123456789101112楼主2024/3/28 16:00
#include <iostream>
#include <vector>
#include <set>
using namespace std;

int main() {
    int n;
    cin >> n; // 读取船只的数量

    vector<int> arrivalTimes(n); // 存储每艘船的到达时间
    vector<vector<int>> nationalities(n); // 存储每艘船上乘客的国籍

    for (int i = 0; i < n; i++) {
        int k;
        cin >> arrivalTimes[i] >> k; // 读取到达时间和乘客数

        nationalities[i].resize(k); // 调整当前船只的国籍数组大小
        for (int j = 0; j < k; j++) {
            cin >> nationalities[i][j]; // 读取国籍
        }
    }

    // 遍历每艘船,计算其到达时间内24小时内的不同国籍数
    for (int i = 0; i < n; i++) {
        set<int> uniqueNationalities; // 使用set来存储不同的国籍,自动去重

        // 遍历之前所有的船(包括当前这艘),统计24小时内的国籍
        for (int j = i; j >= 0 && arrivalTimes[i] - arrivalTimes[j] < 86400; j--) {
            for (int nat : nationalities[j]) {
                uniqueNationalities.insert(nat); // 插入国籍,重复的会被自动忽略
            }
        }

        cout << uniqueNationalities.size() << endl; // 输出不同国籍的数量
    }

    return 0;
}
2024/3/28 16:00
加载中...