結果
問題 | No.1488 Max Score of the Tree |
ユーザー |
![]() |
提出日時 | 2021-04-23 22:09:02 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 11 ms / 2,000 ms |
コード長 | 1,268 bytes |
コンパイル時間 | 2,476 ms |
コンパイル使用メモリ | 188,748 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-04 08:07:47 |
合計ジャッジ時間 | 3,521 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 29 |
ソースコード
#pragma GCC optimize ("O2")#pragma GCC target ("avx2")#include<bits/stdc++.h>//#include<atcoder/all>//using namespace atcoder;using namespace std;typedef long long ll;#define rep(i, n) for(int i = 0; i < (n); i++)#define rep1(i, n) for(int i = 1; i <= (n); i++)#define co(x) cout << (x) << "\n"#define cosp(x) cout << (x) << " "#define ce(x) cerr << (x) << "\n"#define cesp(x) cerr << (x) << " "#define pb push_back#define mp make_pair#define chmin(x, y) x = min(x, y)#define chmax(x, y) x = max(x, y)#define Would#define you#define pleaseint N, K;vector<pair<int, int>> E[200];vector<pair<int, int>> P;int dfs(int u, int v) {int kazu = 0;for (auto p : E[u]) {if (p.first != v) {auto q = dfs(p.first, u);P.pb({ p.second, q * p.second });kazu += q;}}if (kazu == 0) kazu++;return kazu;}int dp[100001];int main() {cin.tie(0);ios::sync_with_stdio(false);cin >> N >> K;rep(i, N - 1) {int a, b, c;cin >> a >> b >> c;E[a].pb({ b, c });E[b].pb({ a, c });}dfs(1, -1);int goukei = 0;for (auto p : P) {for (int j = K - 1; j >= 0; j--) {if (j + p.first <= K) chmax(dp[j + p.first], dp[j] + p.second);}goukei += p.second;}co(goukei + dp[K]);Would you please return 0;}