Description

Solution

第一个子任务,直接从 \((a[i],a[j])\) 推出 \((a[i+1],a[j-1])\) 就行了,只需要 \(\frac{N+1}{2}\)
第二个子任务,首先答案至少是 \(\lceil\frac{max-min}{N-1}\rceil\)
然后我们就只关心长度大于 \(ans\) 的区间了,每一次扩展下去,就可以遍历到所有相邻点,更新一下答案
每一个点刚好贡献两次,加上刚开始找 \(max\) 和 \(min\) 的次数刚好是 \(3*N\) 次

#include "gap.h"
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+10;
ll a[N],inf=1e18;
long long findGap(int T, int n)
{if(T==1){ll ans=0;a[0]=-1;a[n+1]=inf+10;for(int l=1,r=n;l<=r;l++,r--)MinMax(a[l-1]+1,a[r+1]-1,&a[l],&a[r]);for(int i=2;i<=n;i++)ans=max(ans,a[i]-a[i-1]);return ans;}else{ll l=0,r=inf,last=-1;MinMax(l,r,&l,&r);ll ans=(r-l+n-2)/(n-1);for(ll i=l;i<=r;){ll s=i,t=i+ans;MinMax(s,t,&s,&t);i+=ans+1;if(last!=-1 && s!=-1)ans=max(ans,s-last);if(t!=-1)last=t;}return ans;}
}

转载于:https://www.cnblogs.com/Yuzao/p/8893356.html

UOJ #206. 【APIO2016】Gap相关推荐

  1. UOJ#7. 【NOI2014】购票 | 线段树 凸包优化DP

    题目链接 UOJ #7 题解 首先这一定是DP!可以写出: \[f[i] = \min_{ancestor\ j} \{f[j] + (d[j] - d[i]) * p[i] + q[i]\}\] 其 ...

  2. uoj #111. 【APIO2015】Jakarta Skyscrapers

    #111. [APIO2015]Jakarta Skyscrapers 印尼首都雅加达市有 NN 座摩天楼,它们排列成一条直线,我们从左到右依次将它们编号为 00 到 N−1N−1.除了这 NN 座摩 ...

  3. uoj #185. 【ZJOI2016】小星星

    #185. [ZJOI2016]小星星 小Y是一个心灵手巧的女孩子,她喜欢手工制作一些小饰品.她有 nn 颗小星星,用 mm 条彩色的细线串了起来,每条细线连着两颗小星星.有一天她发现,她的饰品被破坏 ...

  4. UOJ #150 【NOIP2015】 运输计划

    题目描述 公元 \(2044\) 年,人类进入了宇宙纪元. \(L\) 国有 \(n\) 个星球,还有 \(n-1\) 条双向航道,每条航道建立在两个星球之间,这 \(n-1\) 条航道连通了 \(L ...

  5. [容斥 状压DP 树形DP] BZOJ 4455 [Zjoi2016]小星星 UOJ #185 【ZJOI2016】小星星

    杜老师说的哦 据说有人n*3^n卡过去 ? UOJ上需要卡常哦 #include<cstdio> #include<cstdlib> #include<algorithm ...

  6. 【APIO2016】Fireworks【闵可夫斯基和】【凸包向量和】【可并堆】

    题意:给一棵带边权的树,可以花费 111 的代价把一条边的边权修改 111,一条边可以修改多次,求使得根到叶子距离相等的最小代价. n≤3×105n\leq 3\times 10^5n≤3×105 先 ...

  7. UOJ#196. 【ZJOI2016】线段树 概率期望,动态规划

    原文链接www.cnblogs.com/zhouzhendong/p/UOJ196.html 题解 先离散化,设离散化后的值域为 $[0,m]$ . 首先把问题转化一下,变成:对于每一个位置 $i$ ...

  8. 【APIO2016】烟火表演(可并堆)(折线DP)

    传送门 题解: 设fi(x)f_i(x)fi​(x)表示在iii的子树中,所有叶子到iii距离为xxx的时候,子树内部修改的最小代价. 显然是个分段一次函数,大力讨论记录下端点就行了. 注意到可能会出 ...

  9. 【APIO2016】烟火表演

    题面 题解 神仙题目啊QwQ 设\(f_i(x)\)表示以第\(i\)个点为根的子树需要\(x\)秒引爆的代价. 我们发现,这个函数是一个下凸的一次分段函数. 考虑这个函数合并到父亲节点时会发生怎样的 ...

  10. UOJ#414. 【APIO2018】新家

    传送门 首先二分答案 \(mid\),问题变成求区间 \([l-mid,r+mid]\) 在该年份的不同类型个数为 \(k\) 关于年份的限制可以离线下来 现在的问题就是区间数颜色,一个套路就是维护每 ...

最新文章

  1. 20169211 2016-2017-2 《移动平台开发实践》 第十周实验总结
  2. Logback中文文档(四):Appender
  3. java jdk目录_Java开发工具包JDK安装和目录介绍
  4. 《那些年啊,那些事——一个程序员的奋斗史》——60
  5. linux python pymssql,Linux下安装pymssql及简单尝试
  6. vue时间控件美化成IOS样式(移动端),vux组件datatime添加星期几/周几教程
  7. HDU2188-Bash博弈
  8. linux查找文件命令 要查找包含某字符
  9. 2018-05-31 第二十五天
  10. python题库选择填空_python练习题4.18猴子选大王
  11. Lombok,自动值和不可变项
  12. 大神们都应该去哪里工作?
  13. php给客户端发广播,phpsocket.io如何向一个组广播?
  14. Redis 数据备份与恢复
  15. Apache服务器+Tomcat服务器配置
  16. Schedule定时器cron表达式
  17. Random Walk 随机游走算法
  18. 华为云EI的诗与远方
  19. SQL(16)--获取员工当前薪水比其manager薪水还高的相关信息
  20. 科技翻译面面观─ 从计算机领域谈起

热门文章

  1. 2021-08-04 Mysql联表查询
  2. 2021-06-25绝对定位的理解
  3. 服务器下 读取springboot application配置文件_一文读懂 Spring Boot 配置文件 application.properties !...
  4. PHP二维数组按照指定的字段排序的函数
  5. springboot注解式AOP通过JoinPoint获取参数 学习笔记
  6. mysql怎么查合计_mysql-查询不同列的数量合计
  7. java poi导出excel模板_Java poi实现导出excel,添加数据有效性,生成模板
  8. 装箱拆箱的意义 java_Java中的装箱和拆箱深入理解
  9. kalilinux装到u盘上的弊端_暗黑系统安装盘高达14G!kali linux在它面前顿然失色
  10. javascript 遍历数组的常用方法(迭代、for循环 、for… in、for…of、foreach、map、filter、every、some,findindex)