修建传送门
Time Limit: 1000 MS Memory Limit: 32768 K
Total Submit: 56(14 users) Total Accepted: 12(10 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、部分思路参考自:http://www.cnblogs.com/xingkongyihao/p/6105717.html....

2、首先我们这么想,建造传送阵的意义是什么?明显是为了缩减从起点到最远点的距离。

紧接着,还能够缩减从起点到其他各个点的距离。

那么我们如果将这个传送阵放到距离起点X远处,那么我们从起点到传送门再到其他各个点就有一个起步长度。很显然我们希望没有这个起步长度。那么想到,将第一个传送阵放到原点(出发点。)

3、接下来我们就可以O(n)枚举第二个传送阵的点,那么接下来考虑此时最短路最长可能的情况:
①从传送阵到最后一个点的长度。

②从起点到的一个点Z

③以及这个点Z到第二个传送阵的距离。

那么我们考虑如何维护②和③....(暴力处理时间复杂度会达到O(n^2)......好鸡肋啊,下边这句话想到了就不至于卡了俩小时啦T T)

我们很明显想要将这两个长度使其尽可能的接近。那么我们维护一个变量j,使得其保证sum【j】>sum【i】-sum【j】&&sum【j-1】<=sum【i】-sum【j-1】;

那么这个点j就是上述过程中的点Z.

Ac代码:

#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
#define ll long long int
ll a[100050];
ll sum[100050];
ll ans;
int n;
int main()
{int t;scanf("%d",&t);while(t--){scanf("%d",&n);memset(sum,0,sizeof(sum));for(int i=2;i<=n;i++)scanf("%lld",&a[i]);for(int i=2;i<=n;i++)sum[i]=sum[i-1]+a[i];ans=600000000000000000;ll tmp=0;int j=1;for(int i=1;i<=n;i++){while(j<i&&sum[j]<=sum[i]-sum[j]){j++;}tmp=max(sum[i]-sum[j],sum[j-1]);tmp=max(sum[n]-sum[i],tmp);if(tmp<ans){ans=tmp;}}printf("%lld\n",ans);}
}

Hrbust 2294 修建传送门【思维】相关推荐

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

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

  2. 16哈理工新生赛 B 修建传送门 (双指针)

    题目链接:点击打开链接 修建传送门 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 104(29 users) Total Accept ...

  3. HRBUST - 2186 铺地砖(思维)

    这次我们用2 * 1的地板砖来铺地,地是一块3 * n的矩形,你能告诉我有多少种铺地的方案么? Input 本题有多组测试数据,每组测试数据包含一个正整数n(0 <= n <= 40). ...

  4. Codeforces 1086 简要题解

    文章目录 A题 B题 C题 D题 E题 传送门 这场比赛原地爆炸了啊!!! 只做了两道. A题 传送门 手贱没关freopenfreopenfreopen于是wawawa了一次,死活调不出错. 题意: ...

  5. 2018年牛客多校算法寒假训练营练习比赛(第四场)

    石油采集 链接:https://ac.nowcoder.com/acm/contest/11834/A 来源:牛客网 随着海上运输石油泄漏的问题,一个新的有利可图的行业正在诞生,那就是撇油行业.如今, ...

  6. “九韶杯”河科院程序设计协会第一届程序设计竞赛题解

    A-6的个数 题意 ​ 2021中,出现了多少个数字6 思路 ​ for循环枚举对于每个数分解之后贡献答案就可以了 代码 #include <bits/stdc++.h> using na ...

  7. hrbust 1424 哈理工oj 1424 Hrbust的校车【水题】【思维】

    Hrbust的校车 Time Limit: 1000 MS Memory Limit: 65536 K Total Submit: 573(179 users) Total Accepted: 176 ...

  8. 修建道路 贪心,思维(女赛)

    思路 : 由于每建一条路的花费是这两个下标之间所有数的最大值,因此要让花费尽可能小,就要让下标尽可能接近,所以想到相邻两个连边,且这样刚好n - 1条路 #include <iostream&g ...

  9. 【HRBUST - 1054 】Brackets! Brackets! (括号匹配,思维,STL栈)

    题干: There are six kinds of brackets: '(', ')', '[', ']', '{', '}'. dccmx's girl friend is now learni ...

最新文章

  1. java使用url和tns两种方式连接数据库执行存储过程
  2. 管道符和作业控制 shell变量 环境变量配置文件
  3. Android异步编程
  4. sjms-1 面向对象
  5. CS 320—Week 8 Homewor
  6. java trie实现
  7. 职高学计算机走单招是,职高学生不用愁了,还有机会上本科,走“单招”或是最佳途径!...
  8. snmp有android代理端吗,Android实现snmp协议(1)
  9. python学习链接
  10. 学生学籍管理系统页面源代码html_学生信息管理系统系统源代码
  11. 魔兽世界稳定服务器,魔兽世界美服服务器趋于稳定 排队新技术将实装
  12. html+上下标+遇乘号无效,html中的特殊符号
  13. sql2000 sp3、sql2000 sp4升级补丁下载和安装须知:
  14. 小水智能-智能楼宇智慧建筑3D可视化系统,为房屋建设增加智能化
  15. 主成分分析结果成分不显著_数据分析|主成分分析
  16. 6. 文本分类——transformer模型
  17. Unit 1: Packet Sniffing 1.1 Packet Sniffing Introduction to Packet Sniffing
  18. 【实战技能】不做绑架公司的技术团队成员
  19. dynamics crm 常用js
  20. php怎么求最小公倍数,用PHP实现最小公倍数

热门文章

  1. scrcpy Device disconnected报错
  2. SAP 货物移动相关Bapi
  3. Scala进阶_函数式编程(过滤丶排序丶分组丶聚合)
  4. 详细理解JS的三座大山
  5. Windows下查看Android手机APP日志
  6. Angular JS introduce
  7. android studio中Option + Enter选择了disable 'introduce local variable'
  8. Hbuilder如何替换选中代码快捷键
  9. Python快速生成gif图
  10. 看完《长安十二时辰》惊呆了!难道唐朝就已经有大数据和云计算?