bzoj2435: [Noi2011]道路修建 树上dp
点击打开链接
RE了一辈子...
思路:树上dp,直接dfs找到每个点v的子节点有多少, 那么对答案的贡献是 w*abs((n-size[v])-size[v]);
RE代码:
1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int maxn = 1100000; 5 6 vector<pair<ll,ll> > E[maxn<<1]; 7 ll size[maxn]; 8 ll n,ans; 9 bool vis[maxn]; 10 11 inline ll read() 12 { 13 ll x=0,f=1;char ch=getchar(); 14 while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} 15 while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} 16 return x*f; 17 } 18 19 void dfs(ll u){ 20 size[u] = 1; 21 for(int i=0; i<E[u].size(); i++){ 22 int v = E[u][i].first, w = E[u][i].second; 23 if(!vis[v]){ 24 vis[v] = 1; 25 dfs(v); 26 size[u] += size[v]; 27 ans+=(ll)(w*(ll)abs((ll)(size[v]-(n-size[v])))); 28 } 29 } 30 } 31 32 int main(){ 33 n = read(); 34 for(int i=1; i<n; i++){ 35 ll u,v,w; u=read(),v=read(),w=read(); 36 E[u].push_back(make_pair(v,w)); 37 E[v].push_back(make_pair(u,w)); 38 } 39 vis[n] = 1; 40 dfs(n); 41 cout << ans << endl; 42 }
转载于:https://www.cnblogs.com/yxg123123/p/6827724.html
bzoj2435: [Noi2011]道路修建 树上dp相关推荐
- bzoj 2435: [Noi2011]道路修建 树上 dp
2435: [Noi2011]道路修建 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pr ...
- BZOJ2435 [Noi2011]道路修建
这是NOI11年题,你在逗我? 直接dfs就可以了,Linux下貌似不会爆栈... 1 /******************************************************* ...
- 【BZOJ-2435】道路修建 (树形DP?)DFS
2435: [Noi2011]道路修建 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 3115 Solved: 1002 [Submit][Sta ...
- 2435: [Noi2011]道路修建
2435: [Noi2011]道路修建 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 2188 Solved: 639 [Submit][Stat ...
- 【bzoj 2435】[Noi2011]道路修建(dfs)
2435: [Noi2011]道路修建 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 3505 Solved: 1167 [Submit][Sta ...
- bzoj 2435: [Noi2011]道路修建(DFS)
2435: [Noi2011]道路修建 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 4110 Solved: 1429 [Submit][Sta ...
- bzoj 2435: [Noi2011]道路修建【树形dp】
dp求size和deep,然后对每条边模拟求代价即可 #include<iostream> #include<cstdio> #include<algorithm> ...
- NOI2011 道路修建
题目连接:http://221.192.240.123:8586/JudgeOnline/showproblem?problem_id=1670 题意自便. 相关知识:树的遍历,非递归DFS写法. 分 ...
- 算法提高——树上DP(树的直径)
文章目录 前言 一.什么是树的直径? 二.例题 三.树上DP 总结 前言 树的直径是图论里边非常高的考察点并且是入门树形dp的基础,竞赛的同学务必重视. 一.什么是树的直径? 树上最远两点(叶子结点) ...
最新文章
- 非常强悍的 RabbitMQ 总结,写得真好!
- python解多项式方程_python – SymPy不能求解四阶多项式方程
- iOS 中的事件传递和响应机制 - 实践篇
- 安卓开发8-WebView支持文件上传
- java ios支付接口开发_微信支付接入(Android/IOS(swift)/Java后台)
- qtextbrowser 大量数据卡顿_800万行的数据,Excel 10秒钟就能完成统计?这个工具太良心了!...
- java基础系列:集合总结(5)
- python-模块入门二(模块循环导入,区分python文件的两种用途,模块搜索路径,软件开发的目录规范)...
- 数据库设计经验浅谈(3,4,5)转载
- 标记偏置 隐马尔科夫 最大熵马尔科夫 HMM MEMM
- KM算法--学习笔记
- 常用的Shell脚本集合
- js 实现购物车加减全选
- 泛微oa系统什么框架_泛微OA系统怎么样?与其他OA相比呢?
- 牛客假日团队赛6 F:Mud Puddles
- [应用广播], 一览华夏文化,诗词三万首震撼上线
- 服务器搭建邮件自动回复,爆笑的邮件自动回复内容,邮件自动回复心理
- PS基础 之 图层样式的使用
- 未来的电子计算机作文300字,未来的校园科幻作文300字(精选3篇)
- 好用的php博客系统,个人博客系统推荐 PHP开源好用的BLOG程序大全