P11157 【MX-X6-T3】さよならワンダーランド

神秘思维题。

考虑到转化式子,拆成 \(j\ge a_i\) 和 \(j\le a_{i+j}\)。前一个不等式是容易满足的,我们只需要在 \([\max\{1,i+a_i\},n]\) 中选择 \(i+j\) 即可。

第二个不等式可化为 \(a_{i+j}-j\ge 0\),因此我们在\([i+a_i,n]\) 中选择 \(a_{i+j}-j\) 的最大值。如果最大值在位置 \(k\),则有 \(a_k-(k-i)\le 0\)。注意到 \(i\) 相同时大小关系只与 \(a_k-k\) 有关,所以同一个 \(i\) 内最大值取到哪与 \(i\) 无关,按照 \(a_k-k\) 预处理一下即可。

我们枚举每一个 \(i\),直接判断预处理出的最大值位置是否合法,就解决了这个问题。

#include <bits/stdc++.h>
using namespace std;
long long t,n,a[500000],b[500000],p[500000];
int main()
{
scanf("%lld",&n);
for(int i=1;i<=n;i++)scanf("%lld",&a[i]),b[i]=a[i]-i,p[i]=i;
for(int i=n-1;i>=1;i--)
if(b[p[i]]<b[p[i+1]])p[i]=p[i+1];
for(int i=1;i<=n;i++)
{
long long t=max(1ll,i+a[i]);
if(t>n)printf("0\n");
else if(p[t]-i<=a[p[t]])printf("1 %lld\n",p[t]-i);
else printf("0\n");
}
return 0;
}

Luogu P11157 【MX-X6-T3】さよならワンダーランド 题解的更多相关文章

  1. luogu P1126 机器人搬重物 题解

    luogu P1126 机器人搬重物 题解 题目描述 机器人移动学会(\(RMI\))现在正尝试用机器人搬运物品.机器人的形状是一个直径\(1.6\)米的球.在试验阶段,机器人被用于在一个储藏室中搬运 ...

  2. Luogu P1351 联合权值 题解

    这是一个不错的树形结构的题,由于本蒟蒻不会推什么神奇的公式其实是懒得推...,所以很愉快的发现其实只需要两个点之间的关系为祖父和儿子.或者是兄弟即可. 然后问题就变得很简单了,只需要做一个正常的DFS ...

  3. 【luogu P2491 [SDOI2011]消防】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2491 题外话: OI一共只有三种题--会的题,不会的题,二分题. 题解: step 1 求树的直径,把树的直 ...

  4. 【luogu P1040 加分二叉树】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1040 今天考试考了一个区间DP...没错就是这个... 太蒟了真是连区间DP都不会...看了看题解也看不懂, ...

  5. 【luogu P1850 换教室】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1850 难的不在状态上,难在转移方程. (话说方程写错居然还有84分= =) #include <cst ...

  6. 【luogu P1558 色板游戏】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1558 我知道三十棵线段树很暴力,可是我们可以状压啊. 颜色最多30,不会爆int 另外 吐槽评测机 #inc ...

  7. 【luogu P3953 逛公园】 题解

    题目链接:https://www.luogu.org/problemnew/show/P3953 题外话:感觉2017年神题好多..这还不是最神的一道,真在考场上我也就写个最短路计数暴力了.现在在大佬 ...

  8. 【luogu P1608 路径统计】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1608 补上一发最短路计数! 感谢王强qwqqqq @Lance1ot #include <queue& ...

  9. 【luogu P1156 垃圾陷阱】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1156 设\(dp[i][j]\)表示前i堆到达高度j时的所活最长时间 那么一旦到当前状态能到达满足的时间和高 ...

  10. 【luogu P2245 星际导航】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2245 = 货车运输 被逼着写过mst+lca 后来成了mst+树剖 #include <cstdio& ...

随机推荐

  1. CH182的ESP32驱动

    CH182的ESP32驱动需要自取 https://files.cnblogs.com/files/blogs/745523/esp-eth.zip?t=1739322979&download ...

  2. lua随写

    --local util={}--function util.Split(str, sep)-- local sep, fields = sep or ":", {}-- loca ...

  3. 使用Python可视化偶极子的电场

    引言 在电学中,偶极子是一个非常重要且有趣的概念.它由两个电荷(一个正电荷和一个负电荷)组成,并且这两个电荷具有相同的大小和相反的符号.偶极子的电场分布具有独特的特点,能够帮助我们深入理解电场的性质. ...

  4. SynchronousQueue的put方法底层源码

    一.SynchronousQueue的put方法底层源码 SynchronousQueue 的 put 方法用于将元素插入队列.由于 SynchronousQueue 没有实际的存储空间,put 方法 ...

  5. DPDI(Dispatch PDI)kettle调度管理平台升级内容

    DPDI升级内容(20240815版) DPDI online部署方式 定时任务优化(支持轮询机制,Cron可提示近5次运行时间) 运行任务优化(支持多机器分布式运行) 其它小功能优化 1. 首页可手 ...

  6. C# 拓展方法( 一)

    总结:用处在不破坏原有类封装的情况下给它添加新的方法,这样可以不需要修改这个类的源代码,也不需要再另外的继承一个类添加方法. C#中的扩展方法及用途 - 森大科技 - 博客园 (cnblogs.com ...

  7. 用DevEco Studio增量补丁修复功能,让鸿蒙应用的调试效率大增

    在鸿蒙应用开发的快节奏赛道上,每一秒的开发效率提升都至关重要.如何更快地看到代码更改后的效果?如何尽可能缩短开发.调试和验证的周期?如何做到在某大厂180万行+项目中将代码修改即时生效?这些问题在De ...

  8. mysql——修改mysql提示符

    参数 描述 \D 完整日期 \d 当前数据库 \h 服务器名称 \u 当前用户 连接客户端时通过参数指定 mysql -uroot -p密码 --prompt=提示符 mysql -h 192.168 ...

  9. Java8 新特性-Lambda表达式

    目录 1.Lambda表达式介绍 2.Lambda表达式语法细讲 3. Lambda表达式语法精简 4. Lambda方法引用 5. 综合实例 6. @FunctionalInterface注解 7. ...

  10. 基于ThinkPHP5知识付费系统AntPayCMS

    历时6个月开发基于ThinkPHP5.1知识付费系统AntPayCMS,自己作IT开发已经10年,一直想自己开发自己的系统,虽然看网上也有很多知识付费类的网站的,但基于TP基本很少,而且自己也一直想做 ...