为啥这段代码 RE 了?感觉是 STL 的锅
  • 板块灌水区
  • 楼主古巷青灯
  • 当前回复6
  • 已保存回复6
  • 发布时间2022/7/21 10:28
  • 上次更新2023/10/27 19:09:32
查看原帖
为啥这段代码 RE 了?感觉是 STL 的锅
535591
古巷青灯楼主2022/7/21 10:28
#include <iostream>
#include <vector>
using namespace std;

const int N = 200 + 10;
const int INF = 1e8;
int n;
int a[N];
int v[N][N], f[N];
vector<int> vec[N];

int main() {
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) scanf("%d", a + i);
    a[0] = -INF;
    for (int i = 0; i < N; i++) {
        f[i] = -INF;
        for (int j = 0; j < N; j++) v[i][j] = -INF;
    }

    int x, y;
    do {
        scanf("%d%d", &x, &y);
        v[x][y] = a[y];
    } while (x != 0 || y != 0);

    for (int i = 1; i <= n; i++) f[i] = a[i];

    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) 
            if (f[j] + v[j][i] > f[i]) f[i] = f[j] + v[j][i], vec[i] = vec[j], vec[i].push_back(j);
    }
    int ans = -INF, val;
    for (int i = 1; i <= n; i++) 
        if (f[i] > ans) ans = f[i], val = i;

    for (int i = 0; i < vec[val].size(); i++) printf("%d-", vec[val][i]);

    int l = -INF, z = vec[val][vec[val].size() - 1], q;
    for (int i = 0; i < N; i++)
        if (v[z][i] > l) l = v[z][i], q = i;

    printf("%d\n", q); 
    printf("%d\n", ans);
    return 0;
}

http://ybt.ssoier.cn:8088/problem_show.php?pid=1262

2022/7/21 10:28
加载中...