赛时趣事一则
查看原帖
赛时趣事一则
1281794
postpone楼主2024/12/18 23:58

赛时写了如下的代码:

// games[i][j] 表示第 i 场比赛第 j 名
vector games(m, vector<int>(t, -1));
for (int i = 0; i < n; i++) {
    games[a[i].gid][a[i].r] = i;
}

for (int i = 0; i < t; i++) {
    for (int j = 0; j < m; j++) {
        int now = games[j][i];
        if (now == -1) {
            break; // ?
        }
        ...
    }
}

这个 break 的意思就是如果这场比赛的第 i 名不存在,那直接开始从头开始找第 i + 1 名。显然是不对的,应改为 continue 才对。

20min A-G,然后H做了四十几分钟……瞪好久才发现问题,模拟题还是太难了(确信)。

2024/12/18 23:58
加载中...