传送门

题面:

Snow Boots

time limit per test:1 second
memory limit per test:256 megabytes
inputstandard:input
outputstandard:output

It’s winter on the farm, and that means snow! There are N tiles on the path from the farmhouse to the barn, conveniently numbered 1…N, and tile i is covered in fi feet of snow.

Farmer John starts off on tile 1 and must reach tile N to wake up the cows. Tile 1 is sheltered by the farmhouse roof, and tile N is sheltered by the barn roof, so neither of these tiles has any snow. But to step on the other tiles, Farmer John needs to wear boots!

In his foul-weather backpack, Farmer John has B pairs of boots, numbered 1…B. Some pairs are more heavy-duty than others, and some pairs are more agile than others. In particular, pair i lets FJ step in snow at most si feet deep, and lets FJ move at most di forward in each step.

Unfortunately, the boots are packed in such a way that Farmer John can only access the topmost pair at any given time. So at any time, Farmer John can either put on the topmost pair of boots (discarding his old pair) or discard the topmost pair of boots (making a new pair of boots accessible).

Farmer John can only change boots while standing on a tile. If that tile has f feet of snow, both the boots he takes off AND the boots he puts on must be able to withstand at least f feet of snow. Intermediate pairs of boots which he discards without wearing do not need to satisfy this restriction.

Help Farmer John minimize waste, by determining the minimum number of pairs of boots he needs to discard in order to reach the barn. You may assume that Farmer John is initially not wearing any boots.

Input

The first line contains two space-separated integers N and B (2≤N,B≤250).

The second line contains N space-separated integers. The ith integer is fi, giving the depth of snow on tile i (0≤fi≤109). It’s guaranteed that f1=fN=0.

The next B lines contain two space-separated integers each. The first integer on line i+2 is si, the maximum depth of snow in which pair i can step. The second integer on line i+2 is di, the maximum step size for pair i. It’s guaranteed that 0≤si≤109 and 1≤di≤N−1.

The boots are described in top-to-bottom order, so pair 1 is the topmost pair in FJ’s backpack, and so forth.

Output

The output should consist of a single integer, giving the minimum number of boots Farmer John needs to discard. It’s guaranteed that it will be possible for FJ to make it to the barn.

Sample Input

10 4
0 2 8 3 6 7 5 1 4 0
2 3
4 2
3 4
7 1

Sample Output

2

题面描述:

从农舍到谷仓的路径上有N个瓷砖,编号为1…N,瓷砖i覆盖在雪厚度为fi的地方,我们要从瓷砖1走到N来唤醒奶牛,瓷砖1被农舍屋顶遮挡,瓷砖N被谷仓屋顶遮挡,因此这些瓷砖都没有积雪。但是要踩到其他有雪的瓷砖需要穿鞋,现在我们有B双鞋,编号为1…B,每双鞋的属性有:最多能踩进雪厚为si的瓷砖,一步最多能前进di个瓷砖。值得注意的是每次只能从背包拿出最上面那双鞋,而且当我们换鞋时也要保证换之后的鞋能成功踩在当前瓷砖上,如果取出鞋后不换而是丢弃则不用满足这个条件。

题目分析:

一开始想用贪心做,用当前鞋子尽量走的更远,实在不能走了在换鞋,后来发现这样是不行的,因为有可能上一个瓷砖雪很薄,当前瓷砖上的雪非常厚,而下一双鞋能一步走到终点,本来可以在上一个瓷砖换鞋一步走到终点,但是由于贪心已经走到当前瓷砖了,这时候会把它丢弃,寻找能在更厚的雪上行走的鞋。后来用dp做成功了。dp[i]的状态是第i个瓷砖此时能不能走到,从第一双鞋开始每个都枚举一遍i…N,对于当前这双鞋能走到的瓷砖都标记为1,每双鞋枚举结束后都检查一下dp[n]是否能走到,能就直接输出答案i-1。

代码:

#include<algorithm>
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<queue>
#include<vector>
using namespace std;
long long i,n,b,ans,f[255],s[255],d[255],dp[255];//dp[i]表示是否能走到第i个位置 int main(){cin>>n>>b;for(i=1;i<=n;i++) cin>>f[i];for(i=1;i<=b;i++) cin>>s[i]>>d[i];memset(dp,0,sizeof(dp));dp[1]=1;for(i=1;i<=b;i++){//从第一双鞋往后枚举来求出最小丢弃鞋的数量 for(int j=1;j<=n;j++){if(dp[j]&&s[i]>=f[j]){//别忘了换的鞋也要能踩上这个位置 for(int k=j;k<=min(j+d[i],n);k++){//防止越界if(s[i]>=f[k]) dp[k]=1;} }}if(dp[n]==1) break;}cout<<i-1;
}

Snow Boots相关推荐

  1. 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 ...

  2. P4269 [USACO18FEB]Snow Boots G

    思维题. 以地板为序构造链表,再排序,然后删除走不过去的地面. 删除的时候顺便维护最大的跨度,以此判断可行性. 总的来说利用了答案的单调性. #include <cstdio> #incl ...

  3. php输出mysql查询结果_PHP简单获取数据库查询结果并返回JSON

    header("Content-type:text/html;charset=utf-8"); //连接数据库 $con = mysql_connect("localho ...

  4. python init main_python 模块中的 __init__.py __main__.py

    python中文件夹想作为一个模块被引用,则在文件夹内必须要包含 __init__.py 文件,即使此文件为空. 如果此模块想要运行则必须要包含 __main__.py 文件.接下来说下两个文件起到的 ...

  5. 用关键字搜索lazada商品详情

    目前店铺订单和店铺商品接口权限已经不支持申请应用,有好多做店群业务,店铺订单同步,店铺交易,店铺订单物流,店铺订单消息推送,店铺订单插旗,店铺上传商品,店铺修改商品属性,店铺上货等操作均不能操作了,使 ...

  6. AI绘画Stable Diffusion实战操作: 62个咒语调教-时尚杂志封面

    今天来给大家分享,如何用sd简单的咒语输出好看的图片的教程,今天做的是时尚杂志专题,话不多说直入主题. 还不会StableDiffusion的基本操作,推荐看看这篇保姆级教程: AI绘画:Stable ...

  7. GDUT 寒假排位赛二

    直接看题 [题目链接]: http://codeforces.com/group/NVaJtLaLjS/contest/238204 A. Taming the Herd(签到题) 题意: 有一张表, ...

  8. 在虚拟机中如何安装Mac OS X Snow Leopard 10.6

    前一段时间由于心血来潮,也由于在twitter上经常看到tinyfoo等大虾说苹果的优势.自己就先装个Mac OS系统学习一下,本人是狂热的小黑迷,原来在bestbuy和老婆在看Macbook Pro ...

  9. AWS — AWS Snow 系列

    目录 文章目录 目录 AWS Snow 系列 AWS Snowcone AWS Snowball AWS Snowmobile AWS Snow 系列 AWS Snow 系列可为需要在严峻的非数据中心 ...

最新文章

  1. ZooKeeper集群环境安装与配置
  2. 小白的 --Vuex 入门理解
  3. php 怎么写个定时自理器,教你编写更加稳定、可读性强的JavaScript代码的示例
  4. leetcode 599. Minimum Index Sum of Two Lists | 599. 两个列表的最小索引总和
  5. 深度学习之pytorch(一) 环境安装
  6. 程序实践:命令行之连连看
  7. C语言:四则计算器(支持小数,括号和次方幂 组合输入计算)
  8. 千呼万唤始出来,OpenCV 4.0正式发布!
  9. sequelize 外键关联_用Sequelize计算关联条目
  10. word页码怎么从第三页开始设置为第一页_如何让页码从指定页开始,而不是第一页?...
  11. 怎样在php中制作电子相册,如何制作纪念电子相册
  12. java8新特性,stream流多种写法
  13. html批量转码工具,文件转码工具(文件GBK与UTF编码批量转码工具)
  14. 本科三本的计算机博士,读书中的我——从三本本科到985博士
  15. c语言程序如何在keil中运行,keil c51中C程序的启动过程
  16. SQL Server中已满事务日志原因的检测
  17. creator中关于旋转所使用的欧拉角和四元数
  18. 中国手术标记笔市场趋势报告、技术动态创新及市场预测
  19. 考研数据结构——(栈)
  20. C语言进阶之自定义类型:结构体,枚举,联合

热门文章

  1. 甲骨文面试经历 Oracle Interview
  2. 抓狐狸小游戏(python程序设计实验16)
  3. 站群网站批量文章翻译发布插件
  4. You Aren’t Special
  5. httprunner3.x详细教程五(debugtalk.py介绍)
  6. TP-LINK TL-WR841N 路由变无线交换机设置
  7. 为什么学不好编程?——好文章一网打尽
  8. 电子和计算机工程密歇根大学,美国密歇根大学电子和计算机工程系系主任:微纳传感器的未来畅想...
  9. IIS应用程序池标识的权限说明
  10. chained rows analyze