题意:有$n$个数轴上的绿洲,给定它们的坐标,有一只骆驼想要访问所有绿洲,当它的驼峰容量为$V$时,它可以走到和当前绿洲距离$\leq V$的绿洲,并可以继续走,它也可以用一次跳跃到达任意一个绿洲,只不过这样会让驼峰容量变为$\left\lfloor\frac V2\right\rfloor$,问它可以从哪些位置开始使得最终可以到达所有绿洲

当$V$为定值时,它不跳跃就能到达的地方是许多个区间,每个区间内相邻两点距离$\leq V$,先对所有的$O(\log V)$个$V$预处理出这些区间,我们把$V'=\left\lfloor\frac V{2^i}\right\rfloor$时的这些区间称为第$i$层的区间

问题变为:硬点$0$层选一个区间,在$0$层以外每层选一个区间,使得这些区间的并是$[1,n]$,问是否可行

考虑状压,设$fl_i=x$表示在$i$状态的层中选了区间,最远能覆盖到$[1,x]$,转移就枚举不在$i$中的层$j$,加入$j$层中包含$fl_i$的右端点最大的区间即可,类似地定义$fr_i$,转移也是类似的,注意这里的状压不包括$0$层

最后对$0$层的每一个区间$[l,r]$,如果存在$x$使得$fl_x\geq l-1,fr_{all-x}\leq r+1$那么整个区间都可以,直接枚举所有$x$给区间打标记即可

状压DP那一步好厉害啊...

#include<stdio.h>
void fmax(int&a,int b){
	if(b>a)a=b;
}
void fmin(int&a,int b){
	if(b<a)a=b;
}
int x[200010],l[20][200010],r[20][200010],n;
void pre(int p,int d){
	int*l=::l[p],*r=::r[p],i;
	l[1]=1;
	for(i=2;i<=n;i++)l[i]=x[i]-x[i-1]>d?i:l[i-1];
	r[n]=n;
	for(i=n-1;i>0;i--)r[i]=x[i+1]-x[i]>d?i:r[i+1];
	l[0]=1;
	r[n+1]=n;
}
int fl[262144],fr[262144],s[200010];
void gao(int l,int r){
	if(l<=r){
		s[l]++;
		s[r+1]--;
	}
}
int main(){
	int V,M,i,j;
	scanf("%d%d",&n,&V);
	for(i=1;i<=n;i++)scanf("%d",x+i);
	for(M=0;V;V>>=1)pre(M++,V);
	pre(M,0);
	fr[0]=n+1;
	for(i=1;i<1<<M;i++){
		fr[i]=n;
		for(j=0;j<M;j++){
			if(i>>j&1){
				fmax(fl[i],r[j+1][fl[i^(1<<j)]+1]);
				fmin(fr[i],l[j+1][fr[i^(1<<j)]-1]);
			}
		}
	}
	for(i=0;i<1<<M;i++){
		gao(l[0][fr[((1<<M)-1)^i]-1],r[0][fl[i]+1]);
	}
	for(i=1;i<=n;i++){
		s[i]+=s[i-1];
		puts(s[i]?"Possible":"Impossible");
	}
}

[AGC012E]Camel and Oases的更多相关文章

  1. AGC012 - E: Camel and Oases

    原题链接 题意简述 沙漠中有个排成一条直线的绿洲,一头储水量为的骆驼. 骆驼有两个操作: 走到距离在V以内的一个绿洲. 飞到任意一个绿洲,但V减少一半.V=0时不能飞. 问骆驼依次从每个绿洲出发,能否 ...

  2. 【AGC012E】 Camel and Oases ST表+状压dp

    题目大意:一排点,两点间有距离. 初始你有一个行走值$v$,如果相邻两点距离不超过$v$你可以自由在这两点行走. 当$v$大于$0$时,你可以选择某一时刻突然飞到任意点,这样做后$v$会减半(下取整) ...

  3. 【agc012E】Camel and Oases

    Portal --> agc012 Description 有一排点,两点间有一定距离,初始的时候有一个行走值\(v\),如果说两点间距离不超过\(v\),那么可以在这两点间自由行走,如果当前\ ...

  4. 【AtCoder】【模拟】【模型转化】Camel and Oases(AGC012)

    题意: 有一个骆驼,n个绿洲遍布在数轴上,第i个绿洲的坐标为x[i],保证x[i]单增.骆驼的驼峰有体积初始值V.当驼峰的体积变为v的时候,驼峰中至多只能够存储v L的水.骆驼希望走完所有的绿洲,并且 ...

  5. Agc012_E Camel and Oases

    传送门 题目大意 坐标轴上有$n$个坐标,第$i$个坐标是$x_i$,初始你有一个容量$V$,当两个给定的坐标距离不超过$V$时,你可以从一个坐标到达另一个坐标,同时你还可以令$V=\lfloor \ ...

  6. AtCoder Grand Contest 012

    AtCoder Grand Contest 012 A - AtCoder Group Contest 翻译 有\(3n\)个人,每一个人有一个强大值(看我的假翻译),每三个人可以分成一组,一组的强大 ...

  7. 【AtCoder】AGC012

    AGC012 A - AtCoder Group Contest 从最后开始间隔着取就行 #include <bits/stdc++.h> #define fi first #define ...

  8. A♂G&C012

    A♂G&C012 A AtCoder Group Contest 从大到小sort后输出\(a_2+a_4+a_6+\ldots a_{2n}\) 好♂啊,只会背结论/kk B Splatte ...

  9. Camel运行原理分析

    Camel运行原理分析 以一个简单的例子说明一下camel的运行原理,例子本身很简单,目的就是将一个目录下的文件搬运到另一个文件夹,处理器只是将文件(限于文本文件)的内容打印到控制台,首先代码如下: ...

随机推荐

  1. HDU 1234 开门人和关门人 (模拟)

    题目链接 Problem Description 每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签  到.签离记录,请根据记录找出当天开门和关门的人.    Input ...

  2. bootstrap-table设置某列序号自增

    col = [{ field: 'SerialNumber', title: '序号', formatter: function (value, row, index) { return index+ ...

  3. 配置连接的IP、端口、以及相应的数据库

    解压后里面有:lib 源文件 .examples 例子.test测试 将lib目录拷贝到你的项目中,就可以开始你的predis操作了. //使用autoload加载相关库,这边重点就是为了requir ...

  4. 自动化测试===Macaca环境搭建,自我总结

    安装jdk 安装安卓sdk(打开sdk的时候出现问题linux===启动sdk manager下载配置sdk的时候报错的解决办法) 安装gradle,配置环境变量(MACACA===gradle下载和 ...

  5. 【codeforces85D】

    去实验培训回来了……写个题先玩玩 这题给人一种平衡树的感觉 但是呢,实际上操作离线+离散化+线段树一样能做 #include<bits/stdc++.h> #define lson (o& ...

  6. python--tesseract

    tesseract的介绍 我们爬虫会受到阻碍,其中一个便是我们在模拟登陆或者请求一些数据的时候,出现的图形验证码,因此我们需要一种能叫图形验证码识别成文本的技术.将图片翻译成文字一般称为光学文字识别( ...

  7. CSS中cursor属性给标签加上小手形状

    HTML/CSS 2012-08-10 CSS,标签 我们发现a标签在网页中有一个值得注意的地方,即鼠标移到a标签上光标会变成一只小手的图标,移出a标签后又恢复为默认箭头. 如今,JS在网页中的功能越 ...

  8. web中的CSS、Xpath等路径定位方法学习

    今天不到八点就到公司了,来的比较早,趁着有点时间,总结下web中的CSS.Xpath等路径定位定位的方式吧! 简单的介绍下xpath和css的定位 理论知识就不罗列了 还是利用博客园的首页.直接附上代 ...

  9. XML、java解释XML、XML约束

    1.XML有什么用? (1)可以用来保存数据 (2)可以用来做配置文件 (3)数据传输载体 2.XML格式 XML 元素必须遵循以下命名规则: 名称可以含字母.数字以及其他的字符 名称不能以数字或者标 ...

  10. 关于移动端audio自动播放问题

    本人小白全栈一枚,给公司写了一个监控中心,要求严重报警的时候需要触发音频播放,于是就有了以下的折腾. 刚开始一切都很顺利,自然而然的写了以下代码. <audio id="myaudio ...