【反思】为什么这么久?
来源:互联网 发布:win10 磁盘系统优化 编辑:程序博客网 时间:2024/04/27 15:22
题目:求一颗带点权的二叉树的中心。
这么水的一道题居然写了这么久。
还是效率问题。
看来....还是要学会休息,学会学习,合理安排时间神马的...连着搞太久也不好。搞完一下午,晚上就没有精神了。
代码还写得这么丑..真是。
Code
#include<iostream>#include<cstdio> #include<cstdlib>#include<cstring>#include<cmath>#include<algorithm>#include<climits>#define ot "%d"#ifdef WIN32#define otl "%I64d"#else#define otl "%lld"#endif//#define link(a, b) ({nt[++tot] = h[a]; t[h[a] = tot] = b; nt[++tot] = h[b]; t[h[b] = tot] = a;})#define min(a, b) ({int _ = (a), __ = (b); _ < __ ? _ : __;})#define swap(t, a, b) ({t _ = (a); (a) = (b); (b) = _;})#define maxn 100005using namespace std;int n, c[2][maxn], s[maxn], ans, k, v[maxn], num[maxn];void init(){freopen("hospital.in", "r", stdin);freopen("hospital.out", "w", stdout);scanf(ot, &n);for (int i = 1; i <= n; ++i)scanf(ot ot ot, &num[i], &c[0][i], &c[1][i]);}void dfs(int k){if (!k) return ;int l = c[0][k], r = c[1][k];dfs(l), dfs(r); s[k] = s[l] + s[r];v[k] = v[l] + v[r] + s[k]; s[k] += num[k];}void update(int k, int chn, int vu){if (!k) return;int l = c[0][k], r = c[1][k], sl = s[l], sr = s[r], vk = v[k] = vu;update(l, chn + num[k] + sr, vk - sl + chn + num[k] + sr), update(r, chn + num[k] + sl, vk - sr + chn + num[k] + sl);}int main(){init();v[0] = c[0][0] = c[1][0] = s[0] = 0;dfs(1);ans = v[1];int l = c[0][1], r = c[1][1], sl = s[l], sr = s[r], vk = v[1];update(l, s[r] + num[1], vk - sl + sr + num[1]), update(r, s[l] + num[1], vk - sr + sl + num[1]);for (int i = 2; i <= n; ++i) ans = min(ans, v[i]);printf(ot, ans);return 0;}
不过..还是要加油~
El psy congroo
- 【反思】为什么这么久?
- 为什么过去这么久,我还没谈恋爱
- “为什么我的Clion编译要这么久?”
- 延时这么久吗
- 当你想放弃的时候,想想当初为什么会坚持这么久。
- 为什么你的JavaScript学了这么久,代码还是烂成了渣?
- 荒废了这么久这么开始呢?
- 学了这么久了
- 为什么学习C语言这么久,看的懂代码,做不出题,写不出来项目?
- “黄金搭档”为何能“忽悠”这么久
- 为何Delphi这么久没动静了?
- 上了这么久,初次写文章
- 老规矩,这么久不见先FQ一把。
- 走了这么久,你变了没有
- 没想到第二篇blog相隔这么久
- makefile 就这样纠结了这么久
- 来论坛这么久,首次开博
- 工作这么久,该记录一下了
- 分享一道类继承的笔试题目
- 内存修改器
- 百度搜索条补充功能思路
- 课堂小结
- 检测到在集成的托管管道模式下不适用的 ASP.NET 设置的解决方法
- 【反思】为什么这么久?
- VS2008生成EXE无法在其他电脑上使用
- mysql sql语句大全
- 用Tomcat构建WEB站点
- JAVA集合类笔记
- n数码问题,全排列的hash(转载
- 敌兵布阵(树状数组、线段树)
- 怎么理解正则表达式
- 三个传教士和三个野人过河