Submission #950463

# Submission time Handle Problem Language Result Execution time Memory
950463 2024-03-20T10:30:05 Z yeediot Museum (CEOI17_museum) C++14
100 / 100
536 ms 393984 KB
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define F first
#define S second
#define all(x) x.begin(),x.end()
#define pii pair<int,int>
#define pb push_back
#define sz(x) (int)(x.size())
#define chmin(x,y) x=min(x,y)
#define chmax(x,y) x=max(x,y)
#define vi vector<int>
#define vp vector<pii>
#define vvi vector<vi>
#define ykh mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count())
#define __lg(x) 63-__builtin_clzll(x)
#define pow2(x) (1LL<<x)
void __print(int x) {cerr << x;}
void __print(float x) {cerr << x;}
void __print(double x) {cerr << x;}
void __print(long double x) {cerr << x;}
void __print(char x) {cerr << '\'' << x << '\'';}
void __print(const char *x) {cerr << '\"' << x << '\"';}
void __print(const string &x) {cerr << '\"' << x << '\"';}
void __print(bool x) {cerr << (x ? "true" : "false");}

template<typename T, typename V>
void __print(const pair<T, V> &x) {cerr << '{'; __print(x.first); cerr << ','; __print(x.second); cerr << '}';}
template<typename T>
void __print(const T &x) {int f = 0; cerr << '{'; for (auto &i: x) cerr << (f++ ? "," : ""), __print(i); cerr << "}";}
void _print() {cerr << "]\n";}
template <typename T, typename... V>
void _print(T t, V... v) {__print(t); if (sizeof...(v)) cerr << ", "; _print(v...);}
#ifdef local
void setio(){freopen("/Users/iantsai/Library/Mobile Documents/com~apple~CloudDocs/cpp/Empty.md","r",stdin);}
#define debug(x...) cerr << "[" << #x << "] = ["; _print(x)
#else
void setio(){}
#define debug(x...)
#endif
void setIO(string s) {
    freopen((s + ".in").c_str(), "r", stdin);
    freopen((s + ".out").c_str(), "w", stdout);
}
struct line{
    int a,b;
    int operator()(const int x)const{
        return a*x+b;
    }
};
bool check(line l1,line l2,line l3){
    return (l3.b-l2.b)*(l1.a-l2.a)<=(l2.b-l1.b)*(l2.a-l3.a);
}
const int mxn=1e4+5;
vector<pii>adj[mxn];
vector<vector<vector<int>>>dp(mxn,vector<vector<int>>(2));
int cnt[mxn];
void dfs(int v,int pa){
    cnt[v]=1;
    dp[v][0].pb(0);//停在v
    dp[v][0].pb(0);
    dp[v][1].pb(0);
    dp[v][1].pb(0);//停在任一點
    for(auto [u,d]:adj[v]){
        if(u==pa)continue;
        dfs(u,v);
        vector<vector<int>>temp(2,vector<int>(cnt[v]+cnt[u]+1,1e9));
        for(int i=0;i<=cnt[v];i++){
            for(int j=0;j<=cnt[u];j++){
                chmin(temp[0][i+j],dp[v][0][i]+dp[u][0][j]+d*2*(j>0));
                chmin(temp[1][i+j],dp[v][0][i]+dp[u][1][j]+d);
                chmin(temp[1][i+j],dp[v][1][i]+dp[u][0][j]+d*2*(j>0));
            }
        }
        cnt[v]+=cnt[u];
        dp[v]=temp;
    }
}
signed main(){
    setio();
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    int n,k,x;
    cin>>n>>k>>x;
    for(int i=1;i<n;i++){
        int a,b,c;
        cin>>a>>b>>c;
        adj[a].pb({b,c});
        adj[b].pb({a,c});
    }
    dfs(x,x);
    cout<<dp[x][1][k]<<'\n';
    /*for(int i=1;i<=n;i++){
        for(int j=0;j<=cnt[i];j++){
            //cout<<dp[i][0][j]<<','<<dp[i][1][j]<<' ';
        }
        //cout<<'\n';
    }*/
}
 /*
 input:
 
 */















 

Compilation message

museum.cpp: In function 'void dfs(long long int, long long int)':
museum.cpp:64:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   64 |     for(auto [u,d]:adj[v]){
      |              ^
museum.cpp: In function 'void setIO(std::string)':
museum.cpp:42:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   42 |     freopen((s + ".in").c_str(), "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
museum.cpp:43:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   43 |     freopen((s + ".out").c_str(), "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1368 KB Output is correct
2 Correct 1 ms 1372 KB Output is correct
3 Correct 1 ms 1372 KB Output is correct
4 Correct 1 ms 1372 KB Output is correct
5 Correct 1 ms 1372 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 132 ms 6892 KB Output is correct
2 Correct 132 ms 7972 KB Output is correct
3 Correct 406 ms 393984 KB Output is correct
4 Correct 197 ms 119108 KB Output is correct
5 Correct 144 ms 27236 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 132 ms 6892 KB Output is correct
2 Correct 132 ms 7972 KB Output is correct
3 Correct 406 ms 393984 KB Output is correct
4 Correct 197 ms 119108 KB Output is correct
5 Correct 144 ms 27236 KB Output is correct
6 Correct 135 ms 5568 KB Output is correct
7 Correct 260 ms 220424 KB Output is correct
8 Correct 536 ms 3812 KB Output is correct
9 Correct 383 ms 3840 KB Output is correct
10 Correct 161 ms 5336 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1368 KB Output is correct
2 Correct 1 ms 1372 KB Output is correct
3 Correct 1 ms 1372 KB Output is correct
4 Correct 1 ms 1372 KB Output is correct
5 Correct 1 ms 1372 KB Output is correct
6 Correct 132 ms 6892 KB Output is correct
7 Correct 132 ms 7972 KB Output is correct
8 Correct 406 ms 393984 KB Output is correct
9 Correct 197 ms 119108 KB Output is correct
10 Correct 144 ms 27236 KB Output is correct
11 Correct 135 ms 5568 KB Output is correct
12 Correct 260 ms 220424 KB Output is correct
13 Correct 536 ms 3812 KB Output is correct
14 Correct 383 ms 3840 KB Output is correct
15 Correct 161 ms 5336 KB Output is correct
16 Correct 140 ms 8408 KB Output is correct
17 Correct 146 ms 8120 KB Output is correct
18 Correct 214 ms 143924 KB Output is correct
19 Correct 389 ms 3708 KB Output is correct
20 Correct 146 ms 5840 KB Output is correct
21 Correct 252 ms 208908 KB Output is correct
22 Correct 130 ms 7596 KB Output is correct
23 Correct 432 ms 4124 KB Output is correct
24 Correct 139 ms 5440 KB Output is correct
25 Correct 353 ms 382116 KB Output is correct