题目链接:点击打开链接

修建传送门

Time Limit: 1000 MS Memory Limit: 32768 K
Total Submit: 104(29 users) Total Accepted: 30(24 users) Rating: Special Judge: No
Description

做为长城上的卫士,影踪派一直守在螳螂高原上防止螳螂人卡拉克西的入侵。影踪派的长城可以近似看做是一条直线上依次编号为1~N的N个基地组成,编号相邻的两个基地之间由长城相连接,而影踪派掌门祝踏岚所在的影踪禅院位于编号为1的基地。
    祝踏岚发现,每次螳螂人只会选择长城上的一个基地进行猛烈的攻击,所以,祝踏岚每次都要从影踪禅院赶到被攻击的基地亲临前线指挥战斗。但是,在长城上移动是很耗时的,为了能更快的赶到任何一个可能被攻击的基地,祝踏岚决定修建一对传送门。
    一对传送门由两个入口组成,它能实现在两个入口间的瞬间转移。出于安全考虑,这两个入口一定要建造在基地上。祝踏岚想选出两个合适的基地建造这一对传送门,使得他从影踪禅院赶到任何一个基地所需要的移动距离最远的那个最短。(每次祝踏岚都会选择采用最短的方式前往每一个基地)。你能帮助他么?

Input

第一行为一个正整数T,表示测试数据组数。

每组测试数据第一行为一个整数N(1 <= N <= 100000),第二行包含N-1个正整数,其中第i个数表示编号为i的基地与编号为i+1的基地之间的长城长度。此长度不会超过2147483647.

Output

对每组测试数据输出一行,仅含一个整数,表示按照最优方案建造完虫洞后,祝踏岚需要从基地1赶到的移动距离最远的基地的移动距离。

Sample Input

2

3

1 20

6

1 2 3 4 5

Sample Output

1

5

Source
2016级新生程序设计全国邀请赛

题解:求从1赶到任何一个基地所需要的移动距离最远的那个最短.可以二分答案啊,也可以用双指针。预处理前缀和,即从1到每个点的距离。然后尺取法去枚举传送阵,第一个传送阵一定要放在1的位置上,否则最小的最大长度就是就会多了(1 -> 左边的传送阵)的距离. 所以dp[i]为前i个距离的前缀和。然后转移方程:

dis = max( max( dp[ l - 1], dp[ i - 1 ] - dp[ l ] ), dp[ n-1 ] - dp[ i-1]);  表示第二个传送阵到两头的最大距离。

然后求最大的最小:ans =min( ans, dis );就可以了。

AC代码:

#include<cstdio>
#include<iostream>
#include<map>
#include<algorithm>
#include<cstring>
typedef long long ll;
using namespace std;
ll dp[110000];
int main()
{int t;ll n;cin>>t;while(t--){cin>>n;memset(dp,0,sizeof(dp));for(int i=1;i<n;i++){ll a;cin>>a;dp[i]=dp[i-1]+a;}ll l=1;ll ans=1e15;ll dis=0;//双指针 for(int i=2;i<=n;i++) //枚举传送阵 {while(i > l && dp[i-1] - dp[l] > dp[l]){l++; }dis=max( max( dp[l-1], dp[i-1]-dp[l] ), dp[n-1]-dp[i-1]);ans=min(ans,dis);}cout<<ans<<endl;}return 0;
}

16哈理工新生赛 B 修建传送门 (双指针)相关推荐

  1. 16哈理工新生赛 H 下雪啦 (哈希表)

    题目链接:点击打开链接 下雪啦 Time Limit: 2500 MS Memory Limit: 32768 K Total Submit: 184(32 users) Total Accepted ...

  2. 16哈理工新生赛 C 方方正正 (证明题)

    方方正正 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 87(24 users) Total Accepted: 19(15 user ...

  3. 小乐乐与二段数(2019哈理工新生赛第20题)

    链接:2019哈理工新生赛题解 2019哈理工新生赛第20题 T题: 链接:https://ac.nowcoder.com/acm/contest/1877/T 来源:牛客网 题目描述 小乐乐从老师口 ...

  4. 2018大连理工新生赛解题报告

    Problem A: 打ACM真开心啊! 思路:假装没有这一题 roblem B: Zeratul与翻转黑白棋 思路:皮这一下很开心=W=! Problem C: Type-B型时间芯片 思路:算一下 ...

  5. Hrbust2294修建传送门(尺取法)

    修建传送门 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 76(18 users) Total Accepted: 19(16 use ...

  6. [SUCTF2018]babyre [ACTF新生赛2020]fungame

    文章目录 [SUCTF2018]babyre 惯用思维 常人思维 GAMEOVER [ACTF新生赛2020]fungame int __cdecl sub_401340(int a1) int __ ...

  7. Hrbust 2294 修建传送门【思维】

    修建传送门 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 56(14 users) Total Accepted: 12(10 use ...

  8. TJUCTF新生赛-AI安全专栏write up

    以下题目为我本次为天津大学ctf新生赛出的AI安全专栏中的所有题目,所有代码仅限学习交流,请勿用于非法活动或商业用途. 1. 签到题 非常简单的签到题,不过其可能会对于其他题目有帮助哦 本题只有如下一 ...

  9. BUU [ACTF新生赛2020]Universe_final_answer

    [ACTF新生赛2020]Universe_final_answer 首先查壳, 64bit 无壳 ida64位打开 main() __int64 __fastcall main(int a1, ch ...

最新文章

  1. 基于SSM实现学籍管理系统
  2. C#获取网页中的验证码图片(转载)
  3. C++之static关键字
  4. 链路层基本问题 : 封装成帧、差错检测、流量控制
  5. 论文浅尝 | 面向自动分类归纳的端到端强化学习
  6. c++用类实现高斯消元法求解线性方程组的解_高斯消元
  7. sap系统搭建教程_SAP系统和微信集成的系列教程之十:如何在SAP C4C系统里直接回复消息给微信用户...
  8. rstudio 修改代码间距_如何在RStudio里修改R脚本的编码方式
  9. android4.2实现pwm,Android平台下AOA协议的PWM信号控制系统
  10. 金融计量学实验报告一
  11. 安卓基于图像识别和CNN做出一个通用的斗地主记牌器(一)
  12. 企业微信双开及三开的方法
  13. 求两个数的最小公倍数和最大公因数
  14. VsCode下通过Latex运行计算机学报的模板
  15. python中imag是什么意思_Python-在imag中查找主要/最常见的颜色
  16. 断句规则 Segmentation Rule
  17. 瘦手臂最快最有效的方法
  18. mdadm 创建md 删除md步骤
  19. prototype 原型
  20. 2022亚马逊云科re:Invent,打开行业新格局

热门文章

  1. .jnlp 文件打开方式
  2. 2018年315晚会黑名单之夜,谁能逃过此劫?
  3. android 实现 bilili 动画播放效果
  4. 视觉SLAM十四讲笔记-第四讲 李群与李代数
  5. feologit:固定效应有序Logit模型
  6. android 手机 跑分榜,Android手机哪家强?安兔兔鲁大师榜单见分晓!
  7. 计算机运算器的功能,计算机中运算器的主要功能
  8. 能量景观(Energy landscape)
  9. 计算机网络---网络层
  10. 皱纹检测Wrinkle-detection