题目链接

AtCoder:https://arc072.contest.atcoder.jp/tasks/arc072_c

洛谷:https://www.luogu.org/problemnew/show/AT2401

Solution

很巧妙的题。

我们考虑从后往前推,设\(b[i]\)表示\(i\sim n\)一定可以到达目的地的点的\(mex-1\),也就是\(0\sim b[i]\)都必然可以到目的地,假设其他的所有点都可以通过某种方式修改\(a[i-1]\)使之不可行。

设当前\(dp​\)到\(i​\),\(i​\)的移动距离为\(a[i]​\),画个图可以知道\((b[i+1],\lfloor\frac{a[i]}{2}\rfloor]​\)这个区间是不能到达目的地的,其余所有在\([0,b[i+1]+a[i]]​\)的位置都可以到。

所以我们只需要判一下上面那个区间存不存在就好了,然后直接转移\(b[i]​\),复杂度\(O(n)​\)。

#include<bits/stdc++.h>
using namespace std; #define int long long void read(int &x) {
x=0;int f=1;char ch=getchar();
for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=-f;
for(;isdigit(ch);ch=getchar()) x=x*10+ch-'0';x*=f;
} void print(int x) {
if(x<0) putchar('-'),x=-x;
if(!x) return ;print(x/10),putchar(x%10+48);
}
void write(int x) {if(!x) putchar('0');else print(x);putchar('\n');} #define lf double
#define ll long long #define pii pair<int,int >
#define vec vector<int > #define pb push_back
#define mp make_pair
#define fr first
#define sc second const int maxn = 5e5+10;
const int inf = 1e9;
const lf eps = 1e-8; int n,q,d,a[maxn],b[maxn],dis[maxn]; signed main() {
read(n),read(d);dis[0]=d;
for(int i=1;i<=n;i++) read(a[i]),dis[i]=min(dis[i-1],abs(dis[i-1]-a[i]));
for(int i=n;i;i--) b[i]=b[i+1]+a[i]*(a[i]/2<=b[i+1]);read(q);
for(int i=1,x;i<=q;i++) read(x),puts(dis[x-1]>b[x+1]?"YES":"NO");
return 0;
}

[AT2401] [arc072_e] Alice in linear land的更多相关文章

  1. AT2401 [ARC072C] Alice in linear land

    基于观察,可以发现这样一条性质: 我们并不关心当前位置和终点的绝对关系,只在乎当前位置和终点的距离,当这个距离确定的时候接下来能走到的位置也是确定的. 基于这个观察可以发现,本质上每个位置的状态就是和 ...

  2. ARC072E Alice in linear land

    ---题面--- 题解: 首先我们要观察到一个性质,因为在固定的起始距离下,经过固定的操作,最后所在的位置是固定的,我们设经过操作1 ~ i之后所在的地方距离终点为d[i]. 那么如果女巫可以修改第i ...

  3. 【ARC072E】Alice in linear land DP

    题目大意 有一个人要去直线上\(lm\)远处的地方,他会依次给他的机器发出\(n\)个指令.第\(i\)个指令为\(d_i\).他的机器收到一个指令\(x\)后,如果向目的地方向前进\(xm\)后比当 ...

  4. AtCoder Regular Contest 072 E:Alice in linear land

    题目传送门:https://arc072.contest.atcoder.jp/tasks/arc072_c 题目翻译 给你一个数组\(D\),然后给你一个操作序列\(d\),每次操作可以将\(D\) ...

  5. 【ARC072 E】Alice in linear land

    被智商题劝退,告辞 题意 有一个人在一条数轴的距离原点为 \(D\) 的位置,他可以执行 \(n\) 次操作,每次操作为给定一个整数 \(d_i\),这个人向原点的方向走 \(d_i\) 个单位,但如 ...

  6. 【ARC072E】Alice in linear land

    题目 瑟瑟发抖,这竟然只是个蓝题 题意大概就是初始在\(0\),要到坐标为\(D\)的地方去,有\(n\)条指令,第\(i\)条为\(d_i\).当收到一条指令\(x\)后,如果向\(D\)方向走\( ...

  7. 【arc072e】AtCoder Regular Contest 072 E - Alice in linear land

    题意 给定一个D,以及一个长度为N的序列a,顺序执行这些数字: 对于一个数字x,会使得D=min(D,abs(D-x)) 有Q次询问,每次询问独立,给出i,能否修改a[i],使得D最后不为0. n,q ...

  8. Atcoder Regular Contest 072 C - Alice in linear land(思维题)

    Atcoder 题面传送门 & 洛谷题面传送门 首先求出 \(s_i\) 表示经过 \(i\) 次操作后机器人会位于什么位置,显然 \(s_0=D\),\(s_i=\min(s_{i-1},| ...

  9. 【AtCoder】ARC072

    ARC072 C - Sequence 直接认为一个数是正的,或者第一个数是负的,每次将不合法的负数前缀和改成+1正数前缀和改成-1 #include <bits/stdc++.h> #d ...

随机推荐

  1. 简单的redis工具类

    import java.util.Arrays; import java.util.List;import java.util.Set; import org.apache.commons.lang. ...

  2. Android #Android开发环境搭建

    Android #Android开发环境搭建 1.下载:Google在国服的官网 https://developer.android.google.cn/index.html 1.点击首页 “ 获取 ...

  3. 《spark机器学习 第二版》 蔡立宇 分享 pdf下载

    链接:https://pan.baidu.com/s/15Y14eAnfj8zf5mXdixbVeQ 提取码:rkdt

  4. Netty源码分析第4章(pipeline)---->第5节: 传播outbound事件

    Netty源码分析第五章: pipeline 第五节: 传播outBound事件 了解了inbound事件的传播过程, 对于学习outbound事件传输的流程, 也不会太困难 在我们业务代码中, 有可 ...

  5. Gitlab CI-3.遇到的问题

    五.遇到的问题 1. cannot validate certificate for x.x.x.x because it doesn't contain any IP SANs 报错信息:ERROR ...

  6. Cocos2dx源码赏析(2)之渲染

    Cocos2dx源码赏析(2)之渲染 这篇,继续从源码的角度来跟踪下Cocos2dx引擎的渲染过程,以此来梳理下Cocos2dx引擎是如何将精灵等元素显示在屏幕上的. 从上一篇对Cocos2dx启动流 ...

  7. i++ i+=1 i=i+1 汇编代码效率比较

    结论:一样.编译器和编译器之间可能有点区别但是程序不会变. 0x00 一直不清楚到底是因为懒还是真的为了效率,要把" i = i + 1 "写成" i++ "或 ...

  8. 深入 JSX

    从本质上讲,JSX 只是为 React.createElement(component, props, ...children) 函数提供的语法糖.JSX代码: 1 2 3 <MyButton ...

  9. 凡事不求甚解,遇事必定抓瞎——PHP开发Apache服务器配置备忘录

    照此配置流程,绝对一路畅通,可保无虞. 昨天弄了个PHP小程序,想在本地跑一下测试,可是工作电脑没有安装环境,于是下载了一个wamp,一路畅通,Apache.Mysql.PHP就全有了.启动wamp服 ...

  10. 搭建gitpage博客

    http://blog.csdn.net/jzooo/article/details/46781805