一直超时四十分求助谢谢各位!

P2515 [HAOI2010] 软件安装

```cpp inline void dfs(int u){ if (vis[u]) return; vis[u]=1; for (int i=W[u];i<=m;i++) f[u][i]=V[u]; for (int i=Head[u];~i;i=e[i].Next){ int v=e[i].to; dfs(v); for (int j=m-W[u];~j;j--)// W[u]>m 时会炸 for (int k=0;k<=j;k++) f[u][j+W[u]]=max(f[u][j+W[u]],f[v][k]+f[u][j+W[u]-k]); } } ``` 改成 ```cpp inline void dfs(int u){ if (vis[u]) return; vis[u]=1; for (int i=W[u];i<=m;i++) f[u][i]=V[u]; for (int i=Head[u];~i;i=e[i].Next){ int v=e[i].to; dfs(v); if(W[u]<=m)for (int j=m-W[u];~j;j--) for (int k=0;k<=j;k++) f[u][j+W[u]]=max(f[u][j+W[u]],f[v][k]+f[u][j+W[u]-k]); } } ```
by Perfound @ 2021-11-17 21:23:21


@[Perfound](/user/535259) 谢谢您了
by Sakuya_maid @ 2023-10-07 12:13:32


|