Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<iostream>#include<algorithm>#include<vector>using namespace std;const int inf = -2147483647;vector<int> children[101];size_t n, m, k;int dp[101][101];int attractive[101];void dfs(int u, int v){dp[u][1] = attractive[u];for (size_t i = 0; i < children[u].size(); i++){dfs(children[u][i], u);for (size_t x = m; x >= 1; x--){if (dp[u][x] > inf)for (size_t y = 0; y <= m - x; y++)if (dp[children[u][i]][y] != inf)dp[u][x + y] = max(dp[u][x + y], dp[u][x] + dp[children[u][i]][y]);}}}int main(){int t;