[luoguP1041] 传染病控制(DFS)


传送门

n <= 300

结果裸的dfs就直接过了。。

枚举每一层,枚举删除每一层的边,然后把删除的边所连接的子树全部删去

代码

#include <vector> #include <cstdio> #include <cstring> #include <iostream> #define N 301 #define min(x, y) ((x) < (y) ? (x) : (y)) #define max(x, y) ((x) > (y) ? (x) : (y)) int n, m, cnt, maxd, ans = ~(1 << 31); int head[N], to[N << 1], next[N << 1], f[N], deep[N], size[N]; std::vector <int> vec[N]; bool vis[N]; inline int read() inline void add(int x, int y) inline void dfs(int u) } } inline void dfs2(int u, int x) } inline void dfs1(int k, int sum) } } int main() dfs(1); dfs1(2, 0); printf("%d\n", ans); return 0; }

  



上一篇:test

下一篇:[luoguP1040] 加分二叉树(DP)


dfs
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图