BZOJ2435 [Noi2011]道路修建
这是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]道路修建相关推荐
- bzoj2435: [Noi2011]道路修建 树上dp
点击打开链接 RE了一辈子... 思路:树上dp,直接dfs找到每个点v的子节点有多少, 那么对答案的贡献是 w*abs((n-size[v])-size[v]); RE代码: 1 #include ...
- 2435: [Noi2011]道路修建
2435: [Noi2011]道路修建 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 2188 Solved: 639 [Submit][Stat ...
- bzoj 2435: [Noi2011]道路修建 树上 dp
2435: [Noi2011]道路修建 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pr ...
- 【bzoj 2435】[Noi2011]道路修建(dfs)
2435: [Noi2011]道路修建 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 3505 Solved: 1167 [Submit][Sta ...
- 【BZOJ-2435】道路修建 (树形DP?)DFS
2435: [Noi2011]道路修建 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 3115 Solved: 1002 [Submit][Sta ...
- bzoj 2435: [Noi2011]道路修建(DFS)
2435: [Noi2011]道路修建 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 4110 Solved: 1429 [Submit][Sta ...
- NOI2011 道路修建
题目连接:http://221.192.240.123:8586/JudgeOnline/showproblem?problem_id=1670 题意自便. 相关知识:树的遍历,非递归DFS写法. 分 ...
- bzoj 2435: [Noi2011]道路修建【树形dp】
dp求size和deep,然后对每条边模拟求代价即可 #include<iostream> #include<cstdio> #include<algorithm> ...
- P4878 道路修建-美国
http://www.tyvj.cn/p/4878道路修建 我想我经大神点拨后终于明白了...回学校再写吧 时间限制:1s 内存限制:256MB [问题描述] A国是一个商业高度发达的国家.它包含了n ...
最新文章
- 获得服务器硬件信息(CPUID、硬盘号、主板序列号、IP地址等)
- 在Google Android模拟器中使用SD卡(命令行和eclipse环境)
- python3 语言翻译相关库
- mysql 存储过程 无限分类_mysql存储过程实现无限分类
- matlab计算位温,大气物理学复习资料
- 个人计算机有控制器和运算器吗,cpu是由控制器和运算器组成的对还是错
- 自动驾驶路径轨迹规划(三阶曲线spline)
- Could not create the view: An unexpected exception was thrown.
- blui_BLUI:一种创建游戏UI的简单方法
- python编程符号大全_2020 年最值得学习的 5 大 AI 编程语言
- 全球及中国树脂晶圆切割刀片行业需求状况及竞争前景分析报告2021-2027年
- OpenCms for MySql安装
- DT|一文看完企业绩效管理系统产品(EPM)的前世今生
- 一大波猪年元素的二维码助你跨猪年!
- Android开发第一课--熟悉开发工具和第一个Android程序
- 氢原子光谱、类氢原子光谱和类氢离子光谱
- 计算机管理邮箱,用WindowsLiveMail一次管理多个邮箱
- 编程之美之数独求解器的C++实现方法
- Maven Scope 讲解
- PMP项目管理-PMP答题思路
热门文章
- WinForm - 两个窗体之间的方法调用
- 第六章 Qt布局管理器Layout
- 分享一篇关于奇异值分解的文章[Eng]
- HTML5基础一:常用布局标签
- mysql 数据迁移_MySQL海量数据迁移
- org.apache.jasper.JasperException: An exception occurred processing JSP page /admin/jiaoshi/daochuEx
- C++异常处理机制详解
- Matlab代码的耗时分析、优化、加速
- MATLAB判断奇偶数
- 苹果13系统锁屏延迟_iPhone 11 锁屏出现延迟是怎么回事?