—Libre#2009. 「SCOI2015」小凸玩密室
#2009. 「SCOI2015」小凸玩密室
题目描述
小凸和小方相约玩密室逃脱,这个密室是一棵有 n nn 个节点的完全二叉树,每个节点有一个灯泡。点亮所有灯泡即可逃出密室。每个灯泡有个权值 Ai A_iAi,每条边也有个权值 bi b_ibi。
点亮第 1 11 个灯泡不需要花费,之后每点亮一个新的灯泡 V VV 的花费,等于上一个被点亮的灯泡 U UU 到这个点 V VV 的距离 D(u,v) D(u, v)D(u,v),乘以这个点的权值 Av A_vAv。
在点灯的过程中,要保证任意时刻所有被点亮的灯泡必须连通,在点亮一个灯泡后必须先点亮其子树所有灯泡才能点亮其他灯泡。请告诉他们,逃出密室的最少花费是多少。
输入格式
第一行包含一个数 n nn,代表节点的个数。
第二行包含 n nn 个数,代表每个节点的权值 ai a_iai。
第三行包含 n−1 n - 1n−1 个数,代表每条边的权值 bi b_ibi,第 i ii 号边是由第 i+12 \frac{i + 1}{2}2i+1 号点连向第 i+1 i + 1i+1 号点的边。
输出格式
输出包含一个数,代表最少的花费。
样例
样例输入
3
5 1 2
2 1
样例输出
5
数据范围与提示
1≤N≤2×105,1<Ai,Bi≤105 1 \leq N \leq 2 \times 10 ^ 5, 1 < A_i, B_i \leq 10 ^ 51≤N≤2×105,1<Ai,Bi≤105
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N=,M=;
typedef long long LL;
int n;
LL a[N],b[N],dep[N],dis[N];
LL f[N][M],g[N][M],ans;
char c;
int read()
{
for (c=getchar();c<'' || c>'';c=getchar());
int x=c-;
for (c=getchar();c>='' && c<='';c=getchar()) x=x*+c-;
return x;
}
int main(){
n=read();
for (int i=;i<=n;i++) a[i]=read();
dep[]=;
for (int i=;i<=n;i++){
b[i]=read();
dep[i]=dep[i>>]+; dis[i]=dis[i>>]+b[i];
}
for (int i=n;i;i--){
for (int j=;j<dep[i];j++){
int lca=(i>>(dep[i]-j)),x=(i>>(dep[i]-j-))^,lt=i<<;
if (lt>n) f[i][j]=(LL)a[x]*(dis[i]+dis[x]-dis[lca]*);
else if (lt==n) f[i][j]=(LL)a[lt]*b[lt]+f[lt][j];
else f[i][j]=min((LL)a[lt]*b[lt]+f[lt][dep[i]]+f[lt|][j],(LL)a[lt|]*b[lt|]+f[lt|][dep[i]]+f[lt][j]);
}
}
for (int i=n;i;i--){
for (int j=;j<dep[i];j++){
int x=i>>(dep[i]-j),lt=i<<;
if (lt>n) g[i][j]=(LL)a[x]*(dis[i]-dis[x]);
else if (lt==n) g[i][j]=(LL)a[lt]*b[lt]+g[lt][j];
else g[i][j]=min((LL)a[lt]*b[lt]+f[lt][dep[i]]+g[lt|][j],(LL)a[lt|]*b[lt|]+f[lt|][dep[i]]+g[lt][j]);
}
}
ans=g[][];
for (int i=;i<=n;i++){
LL s=g[i][dep[i]-];
for (int j=i;j>;j>>=){
int x=j^,y=j>>; if (x>n) s+=(LL)a[y>>]*b[y];
else s+=(LL)a[x]*b[x]+g[x][dep[y]-];
}
if (s<ans) ans=s;
}
printf("%lld\n",ans);
return ;
}
—Libre#2009. 「SCOI2015」小凸玩密室的更多相关文章
- loj#2009.「SCOI2015」小凸玩密室
题目链接 loj#2009. 「SCOI2015」小凸玩密室 题解 树高不会很高<=20 点亮灯泡x,点亮x的一个子树,再点亮x另外的子树, 然后回到x的父节点,点亮父节点之后再点亮父节点的其他 ...
- #2009. 「SCOI2015」小凸玩密室
神仙题啊.完全想不出 首先看方案.可以从任意一个点开始,在这个点要先走完子树,然后走到父亲,再走兄弟,再走父亲的父亲,父亲的兄弟..一直走到1,1的另外一个子树,结束. 完全不会鸭.jpg 设f[i] ...
- 【LOJ】 #2009. 「SCOI2015」小凸玩密室
题解 神仙dp啊QAQ 我们发现我们需要枚举一个起点,遍历完它所有的儿子然后向上爬 设\(f[i][j]\)表示第i个点的子树全部处理完之后到达i深度为j的祖先的兄弟处 我们只需要对叶子节点和只有一个 ...
- 「SCOI2015」小凸玩密室 解题报告
「SCOI2015」小凸玩密室 虽然有心里在想一些奇奇怪怪的事情的原因,不过还是写太久了.. 不过这个题本身也挺厉害的 注意第一个被点亮的是任意选的,我最开始压根没注意到 \(dp_{i,j}\)代表 ...
- loj2009. 「SCOI2015」小凸玩密室
「SCOI2015」小凸玩密室 小凸和小方相约玩密室逃脱,这个密室是一棵有 $ n $ 个节点的完全二叉树,每个节点有一个灯泡.点亮所有灯泡即可逃出密室.每个灯泡有个权值 $ A_i $,每条边也有个 ...
- 「SCOI2015」小凸玩矩阵 解题报告
「SCOI2015」小凸玩矩阵 我好沙茶啊 把点当边连接行和列,在外面二分答案跑图的匹配就行了 我最开始二分方向搞反了,样例没过. 脑袋一抽,这绝壁要费用流,连忙打了个KM 然后wa了,一想这个不是完 ...
- LibreOJ #2006. 「SCOI2015」小凸玩矩阵 二分答案+二分匹配
#2006. 「SCOI2015」小凸玩矩阵 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据 题目描述 ...
- AC日记——「SCOI2015」小凸玩矩阵 LiBreOJ 2006
「SCOI2015」小凸玩矩阵 思路: 二分+最大流: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 300 ...
- loj #2006. 「SCOI2015」小凸玩矩阵
#2006. 「SCOI2015」小凸玩矩阵 题目描述 小凸和小方是好朋友,小方给小凸一个 N×M N \times MN×M(N≤M N \leq MN≤M)的矩阵 A AA,要求小凸从其中选出 ...
随机推荐
- java.lang.UnsupportedClassVersionError: com/dw/Function : Unsupported major.minor version 52.0
本地环境中有jdk7和jdk8,当把jdk8改为jdk7时,出现如下错误,是jdk版本的问题,在Properties-->JAVA Compiler-中的Compiler compliance ...
- Contiki学习资料
一.官方网站 官网主页:http://contiki-os.org/ 资源和支持:http://contiki-os.org/support.html The Contiki Community: h ...
- 单页导航菜单视觉设计HTML模板
单页导航菜单视觉设计HTML模板,视觉,企业,html,单页,单页导航菜单视觉设计HTML模板是一款磨砂背景的大气时尚HTML设计网页模板 http://www.huiyi8.com/moban/
- js(11)
style对象的相关案例 <!DOCTYPE html> <html> <head> <title>MyHtml.html</title> ...
- laravel基础课程---8、laravel响应和视图(响应是什么)
laravel基础课程---8.laravel响应和视图(响应是什么) 一.总结 一句话总结: 就是向请求返回的响应数据(一般为html(视图),当然也可以是变量值):所有的路由及控制器必须返回某个类 ...
- 揭秘FaceBook Puma演变及发展——FaceBook公司的实时数据分析平台是建立在Hadoop 和Hive的基础之上,这个根能立稳吗?hive又是sql的Map reduce任务拆分,底层还是依赖hbase和hdfs存储
在12月2日下午的“大数据技术与应用”分论坛的第一场演讲中,来自全球知名互联网公司——FaceBook公司的软件工程师.研发经理邵铮就带来了一颗重磅炸弹,他将为我们讲解FaceBook公司的实时数据处 ...
- openfire build(2)
InterceptorManager PluginManager openfire 插件的中servlet 在web-custom.xml 中的配置 url 一定要小写,访问时不区别大写小 否则404 ...
- Mybatis异常_02_Result Maps collection already contains value for
一.异常 1.异常信息 2.异常原因 XXXMapper.xml文件中存在重名对象,保持名称不要一样即可正常启动. 我的原因是namespace与其他mapper 一样. 3.可能的原因 (1)nam ...
- PowerDesigner根据SQL文件生成PDM数据字典
当PowerDesigner不能直接连接到数据库的时候,可以用到下面这个方法生成数据字典(直接连接数据库生成数据字典在上次随笔中有介绍). 具体操作步骤截图: ↓↓↓这里选择的sql文件是从数据库导出 ...
- BZOJ_4025_二分图_线段树按时间分治+并查集
BZOJ_4025_二分图_线段树按时间分治+并查集 Description 神犇有一个n个节点的图.因为神犇是神犇,所以在T时间内一些边会出现后消失.神犇要求出每一时间段内这个图是否是二分图.这么简 ...