poj 1949 Chores 最长路
2015-12-17 19:58
344 查看
题目链接
求出最长路.....
求出最长路.....
#include <iostream> #include <vector> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <map> #include <set> #include <string> #include <queue> using namespace std; #define pb(x) push_back(x) #define ll long long #define mk(x, y) make_pair(x, y) #define lson l, m, rt<<1 #define mem(a) memset(a, 0, sizeof(a)) #define rson m+1, r, rt<<1|1 #define mem1(a) memset(a, -1, sizeof(a)) #define mem2(a) memset(a, 0x3f, sizeof(a)) #define rep(i, a, n) for(int i = a; i<n; i++) #define ull unsigned long long typedef pair<int, int> pll; const double PI = acos(-1.0); const double eps = 1e-8; const int mod = 1e9+7; const int inf = 1061109567; const int dir[][2] = { {-1, 0}, {1, 0}, {0, -1}, {0, 1} }; const int maxn = 1e6+5; int head[maxn], dis[10005], num, val[10005]; struct node { int to, nextt, c; }e[maxn]; void add(int u, int v, int c) { e[num].to = v; e[num].nextt = head[u]; e[num].c = c; head[u] = num++; } void init() { mem1(dis); mem1(head); num = 0; } int dfs(int u) { if(~dis[u]) return dis[u]; int ret = val[u], ans = 0; for(int i = head[u]; ~i; i = e[i].nextt) { int v = e[i].to; ans = max(ans, dfs(v)); } return dis[u] = ans+ret; } int main() { int n, x, y; while(cin>>n) { init(); for(int i = 1; i<=n; i++) { scanf("%d", &val[i]); scanf("%d", &x); while(x--) { scanf("%d", &y); add(y, i, val[i]); } } for(int i = 1; i<=n; i++) { if(dis[i]==-1) { dis[i] = dfs(i); } } int ans = 0; for(int i = 1; i<=n; i++) { ans = max(ans, dis[i]); } printf("%d\n", ans); } return 0; }
相关文章推荐
- Android5.0以后版本把应用移动到SD或者TF卡的方法
- BZOJ 1266 - 最短路 + 最小割
- flipView翻转demo
- 轻松学习JavaScript二十:DOM编程学习之获取节点
- leetcode刷题日记——Majority Element
- Windows Server 2012 如何实现多个用户远程桌面登陆?
- 数据库初识
- Git之VS2010实践
- 《利用python进行数据分析》读书笔记--第十章 时间序列(一)
- Caused by: java.lang.NoClassDefFoundError: org/springframework/ui/freemarker/FreeMarkerConfiguration
- http://a.codekk.com/detail/Android/grumoon/Volley%
- KETTLE 实现三表同步的问题
- Android Studio 好用的插件,这些基本是测试过好用的,或者我想用的~
- 丑数 UVA 136
- [Leetcode OJ] Merge Intervals
- oracle 11g-R2安装
- oracle 11g-R2安装
- 2662: [BeiJing wc2012]冻结
- 简单的签名 验签
- RxJava的map操作符