这是NOI11年题,你在逗我?

直接dfs就可以了,Linux下貌似不会爆栈。。。

 1 /**************************************************************
 2     Problem: 2435
 3     User: rausen
 4     Language: C++
 5     Result: Accepted
 6     Time:5184 ms
 7     Memory:76756 kb
 8 ****************************************************************/
 9
10 #include <cstdio>
11
12 using namespace std;
13 typedef long long ll;
14 const int N = 1000005;
15
16 struct edge {
17     int next, to, v;
18     edge() {}
19     edge(int _n, int _t, int _v) : next(_n), to(_t), v(_v) {}
20 } e[N << 1];
21
22 struct tree_node {
23     int vis, sz;
24 } tr[N];
25
26 int first[N], tot;
27 int n;
28 ll ans;
29
30 inline int read() {
31     int x = 0;
32     char ch = getchar();
33     while (ch < '0' || '9' < ch)
34         ch = getchar();
35     while ('0' <= ch && ch <= '9') {
36         x = x * 10 + ch - '0';
37         ch = getchar();
38     }
39     return x;
40 }
41
42 void Add_Edges(int x, int y, int z) {
43     e[++tot] = edge(first[x], y, z), first[x] = tot;
44     e[++tot] = edge(first[y], x, z), first[y] = tot;
45 }
46
47 inline int abs(int x) {
48     return x < 0 ? -x : x;
49 }
50
51 #define y e[x].to
52 void dfs(int p) {
53     int x;
54     tr[p].vis = tr[p].sz = 1;
55     for (x = first[p]; x; x = e[x].next)
56         if (!tr[y].vis) {
57             dfs(y);
58             tr[p].sz += tr[y].sz;
59             ans += 1ll * abs(n - (tr[y].sz << 1)) * e[x].v;
60         }
61 }
62 #undef y
63
64 int main() {
65     int i, x, y, z;
66     n = read();
67     for (i = 1; i < n; ++i) {
68         x = read(), y = read(), z = read();
69         Add_Edges(x, y, z);
70     }
71     dfs(1);
72     printf("%lld\n", ans);
73     return 0;
74 }

View Code

(p.s. 貌似都找不到一个分类了。。。要死。。。就分在dfs序下好了)

转载于:https://www.cnblogs.com/rausen/p/4296115.html

BZOJ2435 [Noi2011]道路修建相关推荐

  1. bzoj2435: [Noi2011]道路修建 树上dp

    点击打开链接 RE了一辈子... 思路:树上dp,直接dfs找到每个点v的子节点有多少, 那么对答案的贡献是 w*abs((n-size[v])-size[v]); RE代码: 1 #include ...

  2. 2435: [Noi2011]道路修建

    2435: [Noi2011]道路修建 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 2188  Solved: 639 [Submit][Stat ...

  3. bzoj 2435: [Noi2011]道路修建 树上 dp

    2435: [Noi2011]道路修建 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pr ...

  4. 【bzoj 2435】[Noi2011]道路修建(dfs)

    2435: [Noi2011]道路修建 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 3505  Solved: 1167 [Submit][Sta ...

  5. 【BZOJ-2435】道路修建 (树形DP?)DFS

    2435: [Noi2011]道路修建 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 3115  Solved: 1002 [Submit][Sta ...

  6. bzoj 2435: [Noi2011]道路修建(DFS)

    2435: [Noi2011]道路修建 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 4110  Solved: 1429 [Submit][Sta ...

  7. NOI2011 道路修建

    题目连接:http://221.192.240.123:8586/JudgeOnline/showproblem?problem_id=1670 题意自便. 相关知识:树的遍历,非递归DFS写法. 分 ...

  8. bzoj 2435: [Noi2011]道路修建【树形dp】

    dp求size和deep,然后对每条边模拟求代价即可 #include<iostream> #include<cstdio> #include<algorithm> ...

  9. P4878 道路修建-美国

    http://www.tyvj.cn/p/4878道路修建 我想我经大神点拨后终于明白了...回学校再写吧 时间限制:1s 内存限制:256MB [问题描述] A国是一个商业高度发达的国家.它包含了n ...

最新文章

  1. 获得服务器硬件信息(CPUID、硬盘号、主板序列号、IP地址等)
  2. 在Google Android模拟器中使用SD卡(命令行和eclipse环境)
  3. python3 语言翻译相关库
  4. mysql 存储过程 无限分类_mysql存储过程实现无限分类
  5. matlab计算位温,大气物理学复习资料
  6. 个人计算机有控制器和运算器吗,cpu是由控制器和运算器组成的对还是错
  7. 自动驾驶路径轨迹规划(三阶曲线spline)
  8. Could not create the view: An unexpected exception was thrown.
  9. blui_BLUI:一种创建游戏UI的简单方法
  10. python编程符号大全_2020 年最值得学习的 5 大 AI 编程语言
  11. 全球及中国树脂晶圆切割刀片行业需求状况及竞争前景分析报告2021-2027年
  12. OpenCms for MySql安装
  13. DT|一文看完企业绩效管理系统产品(EPM)的前世今生
  14. 一大波猪年元素的二维码助你跨猪年!
  15. Android开发第一课--熟悉开发工具和第一个Android程序
  16. 氢原子光谱、类氢原子光谱和类氢离子光谱
  17. 计算机管理邮箱,用WindowsLiveMail一次管理多个邮箱
  18. 编程之美之数独求解器的C++实现方法
  19. Maven Scope 讲解
  20. PMP项目管理-PMP答题思路

热门文章

  1. WinForm - 两个窗体之间的方法调用
  2. 第六章 Qt布局管理器Layout
  3. 分享一篇关于奇异值分解的文章[Eng]
  4. HTML5基础一:常用布局标签
  5. mysql 数据迁移_MySQL海量数据迁移
  6. org.apache.jasper.JasperException: An exception occurred processing JSP page /admin/jiaoshi/daochuEx
  7. C++异常处理机制详解
  8. Matlab代码的耗时分析、优化、加速
  9. MATLAB判断奇偶数
  10. 苹果13系统锁屏延迟_iPhone 11 锁屏出现延迟是怎么回事?