[Usaco2018 Feb]Snow Boots
Description
到冬天了,这意味着下雪了!从农舍到牛棚的路上有N块地砖,方便起见编号为1…N,第i块地砖上积了fi英尺的雪。在Farmer John的农舍的地窖中,总共有B双靴子,编号为1…B。其中某些比另一些结实,某些比另一些轻便。具体地说,第i双靴子能够让FJ在至多si英尺深的积雪中行走,能够让FJ每步至多前进di。Farmer John从1号地砖出发,他必须到达N号地砖才能叫醒奶牛们。1号地砖在农舍的屋檐下,N号地砖在牛棚的屋檐下,所以这两块地砖都没有积雪。帮助Farmer John求出哪些靴子可以帮助他走完这段艰辛的路程。
Input
第一行包含两个空格分隔的整数N和B(1≤N,B≤10^5)。
第二行包含N个空格分隔的整数;第i个整数为fi,即i号地砖的积雪深度(0≤fi≤10^9)。输入保证f1=fN=0
下面B行,每行包含两个空格分隔的整数。第i+2行的第一个数为si,表示第i双靴子能够承受的最大积雪深度。
第i+2行的第二个数为di,表示第i双靴子的最大步长。输入保证0≤si≤10^9以及1≤di≤N-1
Output
输出包含N行
第i行包含一个整数:如果Farmer John能够穿着第i双靴子从1号地砖走到N号地砖,为1,否则为0
Sample Input
8 7
0 3 8 5 6 9 0 0
0 5
0 6
6 2
8 1
10 1
5 3
150 7
Sample Output
0
1
1
0
1
1
1
首先把积雪按深度排序,然后按鞋子的承受能力排序。由于鞋子的承受能力越来越差,因此每次需要跨越的长度只会不减。这个用链表维护一下跨越的最长长度,细节看看代码吧。。。
/*program from Wolfycz*/
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define inf 0x7f7f7f7f
using namespace std;
typedef long long ll;
typedef unsigned int ui;
typedef unsigned long long ull;
inline int read(){
	int x=0,f=1;char ch=getchar();
	for (;ch<'0'||ch>'9';ch=getchar())	if (ch=='-')    f=-1;
	for (;ch>='0'&&ch<='9';ch=getchar())	x=(x<<1)+(x<<3)+ch-'0';
	return x*f;
}
inline void print(int x){
	if (x>=10)	print(x/10);
	putchar(x%10+'0');
}
const int N=1e5;
struct S1{
	int v,ID;
	void insert(int i){v=read(),ID=i;}
	bool operator <(const S1 &x)const{return v>x.v;}
}A[N+10];
struct S2{
	int v,len,ID;
	void insert(int i){v=read(),len=read(),ID=i;}
	bool operator <(const S2 &x)const{return v>x.v;}
}B[N+10];
int Nxt[N+10],Pre[N+10];
bool can[N+10];
int main(){
	int n=read(),m=read();
	for (int i=1;i<=n;i++)	A[i].insert(i);
	for (int i=1;i<=m;i++)	B[i].insert(i);
	sort(A+1,A+1+n),sort(B+1,B+1+m);
	for (int i=1;i<=n;i++)	Pre[Nxt[i-1]=i]=i-1;
	int Max=1,tmp=1;
	for (int i=1;i<=m;i++){
		for (int j=tmp;j<=n;j++){
			if (A[j].v<=B[i].v){
				tmp=j;
				break;
			}
			Nxt[Pre[A[j].ID]]=Nxt[A[j].ID];
			Pre[Nxt[A[j].ID]]=Pre[A[j].ID];
			Max=max(Max,Nxt[A[j].ID]-Pre[A[j].ID]);
		}
		can[B[i].ID]=Max<=B[i].len;
	}
	for (int i=1;i<=m;i++)	printf("%d\n",can[i]);
	return 0;
}
												
											[Usaco2018 Feb]Snow Boots的更多相关文章
- BZOJ5194: [Usaco2018 Feb]Snow Boots(排序&set)(可线段树优化)
		
5194: [Usaco2018 Feb]Snow Boots Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 102 Solved: 79[Subm ...
 - 线段树||BZOJ5194: [Usaco2018 Feb]Snow Boots||Luogu P4269 [USACO18FEB]Snow Boots G
		
题面:P4269 [USACO18FEB]Snow Boots G 题解: 把所有砖和靴子排序,然后依次处理每一双靴子,把深度小于等于它的砖块都扔线段树里,问题就转化成了求线段树已有的砖块中最大的砖块 ...
 - bzoj5194: [Usaco2018 Feb]Snow Boots
		
还真是.. 就是 一个被不点名批评的垃圾骗分暴力选手被普及难度的省选信心(??)模拟赛艹爆的题解 的t3嘛... #include<cstdio> #include<iostream ...
 - BZOJ 5194--[Usaco2018 Feb]Snow Boots(STL)
		
5194: [Usaco2018 Feb]Snow Boots Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 81 Solved: 61[Submi ...
 - BZOJ5196: [Usaco2018 Feb]Taming the Herd(DP暴力)
		
5196: [Usaco2018 Feb]Taming the Herd Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 78 Solved: 71[ ...
 - 2019 GDUT Rating Contest II : Problem G. Snow Boots
		
题面: G. Snow Boots Input file: standard input Output file: standard output Time limit: 1 second Memory ...
 - Bzoj[Usaco2018 Feb]5194 Snow Boots(线段树)
		
Description 到冬天了,这意味着下雪了!从农舍到牛棚的路上有N块地砖,方便起见编号为1…N,第i块地砖上积了fi英尺的雪 .在Farmer John的农舍的地窖中,总共有B双靴子,编号为1… ...
 - 【BZOJ5194】Snow Boots
		
[原题题面]传送门 [简化题意] 给定一个长度为n的序列. 有m次询问,每次询问给定两个数si,di.你一开始站在0,每次你可以走不超过di,但你到达的位置的数不能超过si.问能否走到n+1. n,m ...
 - [luogu4265][USACO18FEB]Snow Boots silver
		
题目大意 求出最少需要丢去多少双靴子才能到达终点. 解法 解法一: 看到数据的范围,非常清楚\(O(n^3)\)能过掉所有的数据,那么我们就果断暴力. 解法二: 比较容易会想到用DP做,我一开始定义\ ...
 
随机推荐
- linux 磁盘阵列
			
1.独立磁盘冗余阵列 (RAID) 2.RAID级别: raid0 扩展卷 (条带卷) 至少一块硬盘 具有较高的存储性能 数据请求多块硬盘并行应答 连续数据分散到多个磁盘存储 ,一块磁盘坏掉所有文件就 ...
 - Thinkphp5.0 的使用模型Model的获取器与修改器
			
Thinkphp5.0 的使用模型Model的获取器.修改器.软删除 一.获取器 在model中使用 get+字段名+Attr,可以修改字段的返回值. 数据库中性别保存为,0未知.1男.2女,查询时返 ...
 - apple网址
			
https://developer.apple.com/downloads/index.action# 开发工具下载
 - TensorFlow-GPU环境配置之二——CUDA环境配置
			
1.安装最新显卡驱动 到系统设置->软件和更新->附加驱动中选中最新的显卡驱动,并应用 2.下载CUDA8.0 https://developer.nvidia.com/cuda-down ...
 - APPLE STORE
			
直接在设置中,使用查看APPLE ID是无法更改的,现在必须要有所在区域的信用卡信息,支付方式无法像以前一样选择“无”. 查询后发现,有人说icloud3.0,即这个旧版的可以进行更改,于是下载. 但 ...
 - [Debug] Inspect and Style an Element in DevTools that Normally Disappears when Inactive
			
It’s handy to inspect an element in your browser’s DevTools when you need to experiment or tweak it’ ...
 - oralce之复杂查询举例
			
表结构: S(SNO,SNAME) 代表 学号.学生姓名: C(CNO,CNAME,CTEACHER) 代表 课号,课程名称.授课老师 SC(SNO,CNO,SCGRADE) 代表 学号.课号.课程成 ...
 - bzoj 1266 [AHOI2006] 上学路线 route 题解
			
转载请注明:http://blog.csdn.net/jiangshibiao/article/details/23989499 [原题] 1266: [AHOI2006]上学路线route Time ...
 - IDM百度云使用
			
2018-8-6 (idm百度云速度很慢) Tips:如果感觉图片较小,可以ctrl+鼠标滚轮放大网页 首先下载IDM绿色版. 解压后:右键以管理员权限运行进行绿化 最后,它会在所有支持的浏览器上安装 ...
 - Android入门级编译错误汇总
			
1 描写叙述: 项目常常须要引用别人的libraryproject,在选项中add进来后,点击应用或者确定.关闭页面. 回到代码中却发现无法链接,又一次打开properties查看,发现导入的pr ...