调试代码啊啊啊啊啊啊啊啊
  • 板块灌水区
  • 楼主Fishmaster
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/9/29 19:11
  • 上次更新2023/10/27 09:32:20
查看原帖
调试代码啊啊啊啊啊啊啊啊
531258
Fishmaster楼主2022/9/29 19:11

P3177 50 分崩溃了啊啊啊啊啊啊啊啊啊啊啊,能不能帮我调一下啊啊啊啊啊啊啊啊啊啊啊

#include <bits/stdc++.h>
#define ll long long
using namespace std;

struct edge {
    ll to, next, val;
} g[2005];
ll n, cnt, h[2005];
ll k, s[2005], dp[2005][2005];

void add(ll x, ll y, ll z) {
    g[++cnt].to = y;
    g[cnt].val = z;
    g[cnt].next = h[x];
    h[x] = cnt;
}

void dfs(ll x) {
    s[x] = 1;
    for (ll i = h[x]; i; i = g[i].next) {
        ll y = g[i].to;
        if (s[y])
            continue;
        dfs(y);
        ll z = g[i].val;
        for (ll a = s[x]; a >= 0; a--)
            for (ll b = s[y]; b >= 0; b--)
                dp[x][a + b] = max(dp[x][a + b], dp[x][a] + dp[y][b] + b * z * (k - b) + z * (n - k + b - s[y]) * (s[y] -
                                   b));
        s[x] += s[y];
    }
}

int main() {
    cin >> n >> k;
    for (ll i = 1; i < n; i++) {
        ll u, v, w;
        cin >> u >> v >> w;
        add(u, v, w);
        add(v, u, w);
    }
    dfs(1);
    cout << dp[1][k];
    return 0;
}
2022/9/29 19:11
加载中...