lpoj5576 hongrock的柠檬树
题目:https://lpoj.cn/problemdetail?problemID=5576
输入一棵树,求树上所有两点之间路径或之和。
权神设计出来是用并查集做的。
然而第一反应就是向上合并维护二进制位。写了一发维护1的个数愉快的wa了,之后就忘了有这题了。最近这题被大师兄秒掉了,被教育了一手可以先当成整棵树全是1来做,然后再合并0的个数,减掉0的情况。
瞬间好写了很多。。。。
我们把子树0的个数向上合并的时候,检查一下父节点这一位是否是0,如果是0才合并,因为父节点是所以子节点的必经之路,如果父节点是1,那么子节点经过父节点往上或出来这一位就是1了。
ac代码:
#include<bits/stdc++.h>using namespace std;const int maxn = 1e5 + 5;
typedef long long ll;ll ans;
int n, val[maxn];
int p[20], sz[maxn][20];
vector<int> G[maxn];void crack(int x) {for (int i = 0; i < 20; ++i) {sz[x][i] = !(val[x] >> i & 1);}
}void dfs(int x, int fa) {crack(x);for (auto v:G[x]) {if (v == fa) {continue;}dfs(v, x);for (int i = 0; i < 20; ++i) {ans -= 1LL * p[i] * sz[x][i] * sz[v][i];if (!(val[x] >> i & 1)) {sz[x][i] += sz[v][i];}}}
}int main() {ios::sync_with_stdio(0);cin >> n;for (int i = 1; i <= n; ++i) {cin >> val[i];}int u, v;for (int i = 1; i < n; ++i) {cin >> u >> v;G[u].push_back(v);G[v].push_back(u);}p[0] = 1;for (int i = 1; i < 20; ++i) {p[i] = p[i - 1] << 1;}for (int i = 0; i < 20; ++i) {ans += 1LL * p[i] * n * (n - 1) / 2;}dfs(1, 0);cout << ans;return 0;
}
lpoj5576 hongrock的柠檬树相关推荐
- [BZOJ1502]月下柠檬树(自适应辛普森积分)
1502: [NOI2005]月下柠檬树 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1387 Solved: 739 [Submit][Statu ...
- 1502: [NOI2005]月下柠檬树 - BZOJ
Description Input 文件的第1行包含一个整数n和一个实数alpha,表示柠檬树的层数和月亮的光线与地面夹角(单位为弧度).第2行包含n+1个实数h0,h1,h2,-,hn,表示树离地的 ...
- BZOJ 1502:月下柠檬树
BZOJ 1502:月下柠檬树 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1502 题目大意:给出一棵由圆台构成的树以及一个平行光源,问 ...
- 【BZOJ-1502】月下柠檬树 计算几何 + 自适应Simpson积分
1502: [NOI2005]月下柠檬树 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1017 Solved: 562 [Submit][Statu ...
- 广东外语外贸大学第15届程序设计竞赛 - G LZL的柠檬树 - 二分 + 最小生成树
Problem G: LZL的柠檬树 Time Limit: 1 Sec Memory Limit: 128 MB Description LZL的柠檬树长出的柠檬可酸了!如果你也想要这棵酸酸的柠檬 ...
- Lemon tree 柠檬树
lemon tree的中文对照歌词 MP3: http://dict.cn/kuaile/83/n-4083.html MV: http://www.uctube.cn/ealk32aksjl.htm ...
- 一首好听的英文歌lemon tree(柠檬树)的中文歌词
一首好听的英文歌lemon tree(柠檬树)的中文歌词 lemon tree的中文 i'm sitting here in a boring room.我坐在这--一间空屋子里 it's just ...
- BZOJ 1502 NOI2005 月下柠檬树 Simpson自适应公式
题目大意:给定一棵由圆台和圆锥构成的柠檬树,月光以α的夹角平行射向地面,求阴影部分面积 补充题目大意:看到这题我产生了心理阴影,求阴影部分面积 题目不好分析,但其实就是求一堆圆和一堆梯形的面积交 样例 ...
- [BZOJ1502] [NOI2005]月下柠檬树
Description 李哲非常非常喜欢柠檬树,特别是在静静的夜晚,当天空中有一弯明月温柔地照亮地面上的景物时,他必会悠闲地 坐在他亲手植下的那棵柠檬树旁,独自思索着人生的哲理.李哲是一个喜爱思考的孩 ...
最新文章
- ashx是什么文件,如何创建
- 无法远程访问Mysql的解决方案
- python学习之老男孩python全栈第九期_day004知识点总结
- 【机器学习基础】回归相关指标优化​
- Windows 中进程的相关操作
- 关于Adapter的The content of the adapter has changed but ListView did not receive a notification.问题分析
- linux php运行用户名和密码,Linux实例(一)使用用户名密码验证连接Linux
- hdu4825 字典树 XOR
- hdu6107 倍增法st表
- C++异常处理:try,catch,throw,finally的用法
- Springmvc Get请求Tomcat、WebLogic中文乱码问题
- 每日英语:Why Food Companies Are Fascinated by the Way We Eat
- WebPager For ASP.NET (基于ASP.NET的数据分页控件)
- 用简单的语句讲解浏览器输入地址进入servlet原理
- s912机顶盒改linux服务器,技术宅 篇一:挑战10倍价格的竞品,S912机顶盒coreelec串流打游戏...
- Luzj's ZTE Win版 终于开发完成
- 现实的复杂性与系统的复杂性
- “裸婚时代”-得妻如此,夫复何求?
- python打印列表元素_Python打印输出数组中全部元素
- 阿里云天池龙珠计划 sql篇---stack06