POJ 1949 Chores(树形dp)
2015-09-08 23:12
441 查看
想来想去不知道怎么用拓扑,然后dp过了。
树形dp挺简单的,就是父节点完成的时刻是该节点所有的子节点完成时刻中的最大值加上父节点完成需要的时间(注意一下时刻跟时间)。然后一次水过去了。
树形dp挺简单的,就是父节点完成的时刻是该节点所有的子节点完成时刻中的最大值加上父节点完成需要的时间(注意一下时刻跟时间)。然后一次水过去了。
#pragma warning(disable:4996) #include <cstdio> #include <cstring> #include <vector> #include <algorithm> using namespace std; const int N = 10005; vector<int>g ; int cnt , cost , n; int ok ; void dfs(int u) { if (ok[u] != -1)return; if (cnt[u] == 0) { ok[u] = cost[u]; return; } int tmp = 0; for (int i = 0; i < (int)g[u].size(); i++) { dfs(g[u][i]); tmp = max(tmp, ok[g[u][i]]); } ok[u] = tmp + cost[u]; } int main() { //freopen("in.txt", "r", stdin); scanf("%d", &n); for (int i = 1; i <= n; i++) { int x; scanf("%d %d", cost + i, &x); cnt[i] = x; while (x--) { int v; scanf("%d", &v); g[i].push_back(v); } } int ans = 0; memset(ok, -1, sizeof ok); for (int i = n; i > 0; i--) { if (ok[i] == -1)dfs(i); ans = max(ans, ok[i]); } printf("%d\n", ans); return 0; }
相关文章推荐
- JS抽奖二次方缓动测试
- hadoop-2.5.2伪分布环境搭建
- STM32 F4 General-purpose Timers for Periodic Interrupts
- UILable用法小结
- win7 QQ自动远程协助 提示关闭了远程桌面
- RFS自动化测试工具安装与使用总结
- STM32 F4 SPI Accelerometer
- [笔记][Java7并发编程实战手册]5.Fork\Join(Java1.7新特性)框架
- java中的参数传递
- 数组和lookup函数
- effective c++:了解c++默默编写并调用了哪些函数
- STM32 F4 GPIO Modes
- [Cocoa设计模式] 动态创建
- nyoj 123 士兵杀敌(四) 树状数组【单点查询+区间修改】
- 导言
- 初步认识ceph文件系统d
- 使用LaTeX轻松撰写精美个人简历
- Java简单万年历
- php的调试级别
- 笔记-大话设计模式-17 适配器模式