답안 #485384

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
485384 2021-11-07T14:36:36 Z MOUF_MAHMALAT 도로 폐쇄 (APIO21_roads) C++14
0 / 100
265 ms 22852 KB
#include "roads.h"
#include<bits/stdc++.h>
#define F first
#define S second
#define all(v) v.begin(),v.end()
using namespace std;
typedef long long ll;
ll n,dp[2009][2],k;
vector<vector<pair<ll,ll> > >v;
vector<ll>ans;
void dfs(ll d,ll p)
{
    dp[d][0]=dp[d][1]=0;
    vector<pair<ll,ll> >op;
    for(auto z:v[d])
        if(z.F!=p)
        {
            dfs(z.F,d);
            dp[z.F][0]+=z.S;
            op.push_back({dp[z.F][0]-dp[z.F][1],z.F});
        }
    sort(all(op));

    ll o=max(0LL,(ll)op.size()-k);
    for(ll i=0; i<o; i++)
        dp[d][0]+=dp[op[i].S][0];
    for(ll i=o; i<(ll)op.size(); i++)
        dp[d][0]+=dp[op[i].S][1];

    o=max(0LL,(ll)op.size()-k+1);
    for(ll i=0; i<o; i++)
        dp[d][1]+=dp[op[i].S][0];
    for(ll i=o; i<(ll)op.size(); i++)
        dp[d][1]+=dp[op[i].S][1];
}
vector<ll>minimum_closure_costs(int N,vector<int> U,vector<int> V,vector<int> W)
{
    n=N;
    v.resize(n);
    ans.resize(n);
    for(ll i=0; i<n-1; i++)
    {
        v[U[i]].push_back({V[i],W[i]});
        v[V[i]].push_back({U[i],W[i]});
        ans[0]+=W[i];
    }
    for(k=1; k<n; k++)
    {
        dfs(0,0);
        ans[k]=dp[0][0];
    }
    return ans;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 292 KB Output is correct
2 Correct 197 ms 600 KB Output is correct
3 Correct 226 ms 620 KB Output is correct
4 Correct 226 ms 616 KB Output is correct
5 Correct 1 ms 204 KB Output is correct
6 Correct 2 ms 332 KB Output is correct
7 Correct 2 ms 204 KB Output is correct
8 Correct 187 ms 548 KB Output is correct
9 Correct 265 ms 596 KB Output is correct
10 Correct 2 ms 204 KB Output is correct
11 Correct 2 ms 292 KB Output is correct
12 Runtime error 23 ms 13368 KB Execution killed with signal 11
13 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Runtime error 40 ms 20208 KB Execution killed with signal 11
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Incorrect 2 ms 204 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Incorrect 2 ms 204 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 47 ms 22852 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 47 ms 22852 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 292 KB Output is correct
2 Correct 197 ms 600 KB Output is correct
3 Correct 226 ms 620 KB Output is correct
4 Correct 226 ms 616 KB Output is correct
5 Correct 1 ms 204 KB Output is correct
6 Correct 2 ms 332 KB Output is correct
7 Correct 2 ms 204 KB Output is correct
8 Correct 187 ms 548 KB Output is correct
9 Correct 265 ms 596 KB Output is correct
10 Correct 2 ms 204 KB Output is correct
11 Correct 2 ms 292 KB Output is correct
12 Runtime error 23 ms 13368 KB Execution killed with signal 11
13 Halted 0 ms 0 KB -