Description

小Y:“小R 你是萝莉控吗。”小R:“…”
为了避免这个尴尬的话题,小R 决定给小Y 做一道题。
有一个长度为n 的正整数数组A,满足Ai >= Ai+1,现在构造一个数组B,令Bi =。
现在,有一个n * n 的网格图,左下角坐标是(1, 1),右上角坐标是(n, n)。有一个小SB正在坐标为(n, 1) 的位置,每一时刻,如果他现在在(x, y),他可以选择走到(x ?-1,y + 1) 或者(x, (y + 1) div 2),如果选择后者,他要支付Bx的代价。
现在他想走到(1, 1),你可以告诉他他支付的代价最少是多少吗?注意在任何时候他都不能离开这个网格图。

Input

第一行输入一个正整数T 表示数据组数。
对于每组数据,第一行是一个整数n,接下来一行n 个整数表示数组A。

Output

对于每组数据,输出一个整数表示答案。

Sample Input

1
3
1 1 1

Sample Output

5
样例解释:
选择的路径可以是:(3, 1)->(2, 2)->(2, 1)->(1, 2)->(1, 1)

Data Constraint

对于30% 的数据,n <= 10
对于50% 的数据,n <=1000
对于100% 的数据,n<= 105,1 <= T<= 10,1 <= Ai<= 104

思路

合并果子

为什么?感性理解

每次往左走相当于合并两堆果子

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll inf=0x7fffffff,maxn=1e5+777;
ll c[maxn*2],n,ass=0,cnt=0,t=0;
void up(int x)
{int i=x;while(i/2>0){if(c[i]<c[i/2]) swap(c[i],c[i/2]);else break;i>>=1;}
}
void down(int x)
{int i=x;while(i*2<=cnt){int t=i*2;if(t+1<=cnt&&c[t]>c[t+1]) t++;if(c[i]>c[t]) swap(c[i],c[t]);else break;i=t;}
}
void ins(int x)
{c[++cnt]=x;up(cnt);
}
void del()
{swap(c[1],c[cnt]);cnt--;down(1);
}
int pop()
{int x=c[1]; del();return x;
}
int main()
{scanf("%d",&t);while(t--){memset(c,0,sizeof(c)); cnt=0; ass=0;scanf("%d",&n);for(int i=1; i<=n; i++) {ll x;scanf("%lld",&x);ins(x);}while(cnt>1){int x1=pop(),x2=pop();ass+=x1+x2;ins(x1+x2);}printf("%lld\n",ass);}
}

【五校联考1day1】我才不是萝莉控呢相关推荐

  1. [jzoj4210] 【五校联考1day1】我才不是萝莉控呢 {哈夫曼树}

    题目 Description 小Y:"小R 你是萝莉控吗."小R:"-" 为了避免这个尴尬的话题,小R 决定给小Y 做一道题. 有一个长度为n 的正整数数组A, ...

  2. JZOJ 4210. 【五校联考1day1】我才不是萝莉控呢

    .. 题目: 分析: 代码: 题目: 传送门 分析: 我们直接放上合并果子的代码,然后怒切...... 好吧,其实是我找不到证明tatata是哈夫曼树的过程,但题解说是合并果子,所以就^ _ ^ 代码 ...

  3. jzoj4210. 【五校联考1day1】我才不是萝莉控呢(哈夫曼树)

    题意 50分 转换 正解 后记 题意 有一个(小SB)人要从(n,1)走到(1,1),每次他有两种走法: ①(x−1,y+1)①(x-1,y+1)无损耗 ②⌊(x,(y+1)/2)⌋②⌊(x,(y+1 ...

  4. JZOJ Day4 B组 T3【五校联考1day1】我才不是萝莉控呢

    题目大意: 小YYY:"小RRR 你是萝莉控吗."小RRR:"-" 为了避免这个尴尬的话题,小RRR 决定给小YYY 做一道题. 有一个长度为nnn 的正整数数 ...

  5. jzoj(senior)4208. 【五校联考1day1】线段树什么的最讨厌了

    题目链接 题解:反着搜,从[l,r]区间去拓展到其他四个区间[l,2r-l],l,2r-l+1,[2l-r-2,r]2l-r-1,r,然后dfs这四个区间就好啦! #include<cmath& ...

  6. 湖南长郡2021高考成绩查询时间,2021年湖南新高考六校、长郡十五校联考时间公布...

    2021年湖南新高考六校.长郡十五校联考时间公布 导读:距离2021年高考时间仅剩不到一百天,各个省份都的高三学子都进入紧张阶段.开始了各种模拟考试.2021届湖南省炎德英才大联考的考试时间也已经公布 ...

  7. 4246. 【五校联考6day2】san (Standard IO)

    4246. [五校联考6day2]san (Standard IO) Time Limits: 1000 ms  Memory Limits: 262144 KB  Detailed Limits D ...

  8. jzoj4230. 【五校联考4day1】淬炼神体(B组——Day3)

    jzoj4230. [五校联考4day1]淬炼神体 题目 Description 王仙女将你提供的答案填在<葵花宝典>上,突然,宝典发出耀眼的白光,一股强大的吸力瞬间将仙女吸入宝典中. 一 ...

  9. 【五校联考2015 9.5】我才不是萝莉控

    题目大意 你在一个n×nn\times n的网格图上,初始站在(1,1)(1, 1)点,要求到达(n,n)(n, n)点. 假如你现在在(x,y)(x, y)点,那么你有两种行走方式. 走到(x+1, ...

最新文章

  1. 云计算和大数据时代网络技术揭秘(八)数据中心存储FCoE
  2. AJAX+JQUERRY实现分页
  3. Qt 项目视图的便捷类
  4. 肝!使用OpenCV为视频中美女加上眼线
  5. 干旱对数据中心的影响
  6. 好吧,又是两分钟看完一道投机取巧的算法题
  7. CSS属性(display)
  8. oracle中synonym是什么,请问一下在racle里synonym的作用是什么?
  9. xml获取配置DataTable
  10. Go基础-go语言的编码规范
  11. 关于蜂蜜牛奶供养佛菩萨的两段经文
  12. Coverity软件下载安装使用试用
  13. MySQL根据idb文件恢复数据
  14. Creo 9.0 基准特征:基准轴
  15. (lintcode)第4题 丑数II
  16. opencv 脸部识别开源软件
  17. Mybits新手入门之多表操作
  18. 1005--HBase操作实战(HBase Shell命令行模式)
  19. Redis学习记录之Transaction简析(十九)
  20. 服务器如何安装windows7系统,安装Windows 7系统

热门文章

  1. JsonArray或者JsonObject转字符串后里面带有转义字符或者反斜杠的处理方式
  2. python编辑俄罗斯方块_python俄罗斯方块
  3. TransRepair:自动测试及修复神经网络翻译模型的不一致性问题
  4. Gartner发布商业模式创新框架
  5. 高斯列主元消去法——C实现
  6. Day73.SpringMVC案例:影院系统、使用Restful风格重构
  7. project info:
  8. c语言局部函数定义是非法的,疑难问题C语言求解释 为什么编译说是局部函数非法??...
  9. Transformer 新型神经网络在机器翻译中的应用
  10. 普通人逆袭,最有效的方式是“凤尾策略”