题目描述

约翰的奶牛们发现山脊上的草特别美味。为了维持草的生长,约翰打算安装若干喷灌器。

为简化问题,山脊可以看成一维的数轴,长为L(1≤L≤1,000,000)L(1≤L≤1,000,000),而且L一定是一个偶数。每个喷灌器可以双向喷灌,并有确定的射程,该射程是一个整数,且不短于AA,不长于BB。A,B(1≤A≤B≤1000)A,B(1≤A≤B≤1000)都是给出的正整数。它所在位置的两边射程内,都属它的灌溉区域。现要求山脊的每一个区域都被灌溉到,而且喷灌器的灌溉区域不允许重叠。

约翰有N(1≤N≤1000)N(1≤N≤1000)只奶牛,每一只都有特别喜爱的草区,第i只奶牛的草区是[Si,Ei][Si,Ei],不同奶牛的草区可以重叠。现要求,每只奶牛的草区仅被一个喷灌器灌溉。寻找最少需要的喷灌器数目。

输入数据

第11行:N,LN,L.

第22:A,BA,B.

第33到N+2N+2行:每行22个整数Si,Ei,0≤S<E≤LSi,Ei,0≤S<E≤L.

输出数据

最小的喷灌器数目。如果无法设计出满足条件的喷灌器数目,请输出−1−1.

样例输入

2 8
1 2
6 7
3 6

样例输出

3
`

样例说明

如下图,只需安装三个喷灌器。c1,c2c1,c2为奶牛们的草区。

             |-----c2----|-c1|
|---1---|-------2-------|---3---|
+---+---+---+---+---+---+---+---+
0 1 2 3 4 5 6 7 8

数据范围

对于30%30%的数据,L≤100L≤100。

对于60%60%的数据,L≤10000L≤10000。

对于100%100%的数据,1≤L≤1,000,000,1≤A≤B≤1000,1≤N≤10001≤L≤1,000,000,1≤A≤B≤1000,1≤N≤1000。

题目分析

这道题我觉得我这辈子都AC不了了,其实就是在deque上面跑一遍单调就可以了。

好吧我其实AC了,代码如下:

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define inf 1999999999
int n,l,a,b,f[];
bitset<>vis;
deque<int> q;
signed main(){
freopen("divide.in","r",stdin),freopen("divide.out","w",stdout);
cin>>n>>l>>a>>b;
for (int i=,s,e;i<=n;++i) {
cin>>s>>e;
for (int j=s+;j<e;++j) vis[j]=;
}for (int i=; i<=l; ++i) {
f[i]=inf;
while(!q.empty()&&q.front()<i-*b) q.pop_front();
if(!vis[i]&&i%==&&!q.empty())
f[i]=min(f[i],f[q.front()]+);
if(i-*a+>=&&!vis[i-*a+]&&(i-*a+)%==){
while(!q.empty()&&f[i-*a+]<f[q.back()]) q.pop_back();
q.push_back(i-*a+);
}}if (f[l]!=inf) cout<<f[l];
else cout<<-;
return ;
}

代码说明

不知道说什么好,过几次我讲一讲我和她的故事。

【Noip模拟 20160929】划区灌溉的更多相关文章

  1. 【BZOJ】【1986】【USACO 2004 Dec】/【POJ】【2373】划区灌溉

    DP/单调队列优化 首先不考虑奶牛的喜欢区间,dp方程当然是比较显然的:$ f[i]=min(f[k])+1,i-2*b \leq k \leq i-2*a $  当然这里的$i$和$k$都是偶数啦~ ...

  2. 【Noip模拟 20160929】选数

    题目描述 现在有一排共N个数,你需要从中选出恰好K个.选出K个数后,计算它们两两差值的绝对值的最小值S.你需要确定选出哪K个,才能最大化这个S. 输入数据 输入第一行两个正整数N.K,含义如上. 输入 ...

  3. 【Noip模拟 20160929】树林

    题目描述 现在有一片树林,小B很想知道,最少需要多少步能围绕树林走一圈,最后回到起点.他能上下左右走,也能走对角线格子. 土地被分成RR行CC列1≤R≤50,1≤C≤501≤R≤50,1≤C≤50,下 ...

  4. 【Noip模拟 20160929】花坛迷宫

    题目描述 圣玛格丽特学园的一角有一个巨大.如迷宫般的花坛.大约有一个人这么高的大型花坛,做成迷宫的形状,深受中世纪贵族的喜爱.维多利加的小屋就坐落在这迷宫花坛的深处.某一天早晨,久城同学要穿过这巨大的 ...

  5. BZOJ1986: [USACO2004 Dec] Dividing the Path 划区灌溉

    L<=1000000的土地上用长度在2*A~2*B的线段覆盖所有点,且给定n<=1000个区间,每个区间上只允许有一条线段,求最少多少线段,无解-1. f[i]表示填前i个土地最少线段,f ...

  6. 「题解」NOIP模拟测试题解乱写I(29-31)

    NOIP模拟29(B) T1爬山 简单题,赛时找到了$O(1)$查询的规律于是切了. 从倍增LCA那里借鉴了一点东西:先将a.b抬到同一高度,然后再一起往上爬.所用的步数$×2$就是了. 抬升到同一高 ...

  7. 2021.9.17考试总结[NOIP模拟55]

    有的考试表面上自称NOIP模拟,背地里却是绍兴一中NOI模拟 吓得我直接文件打错 T1 Skip 设状态$f_i$为最后一次选$i$在$i$时的最优解.有$f_i=max_{j<i}[f_j+a ...

  8. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  9. HTML基础(二)——表单,图片热点,网页划区和拼接

    一.表单 <form id="" name="" method="post/get" action="负责处理的服务端&qu ...

随机推荐

  1. ASP.NET MVC 阻止通过Url直接访问服务器上的静态文件

    某些情况下我们需要在服务器上保存一些静态文件,比如用户上传到服务器的文件,如果刚好这些文件的保存目录是应用程序目录下的一个子目录的话,别人就可以通过Url直接访问这个文件. 例如:在应用程序目录下的U ...

  2. 使用maven-shade-plugin打包spring项目为可执行的jar包

    使用maven-shade-plugin打包spring项目为可执行的jar包,打包后的jar包里面包含依赖的jar包. POM文件: <plugin> <groupId>or ...

  3. OperateResult 基础类及派生类介绍

    前言 在Visual Studio 中的NuGet管理器中可以下载安装,也可以直接在NuGet控制台输入下面的指令安装: Install-Package HslCommunication NuGet安 ...

  4. 《深入.NET平台和C#编程》内部测试题-笔试试卷答案

    1)      以下关于序列化和反序列化的描述错误的是( C). a)      序列化是将对象的状态存储到特定存储介质中的过程 b)      二进制格式化器的Serialize()和Deseria ...

  5. 实现两个矩阵相乘的C语言程序

    程序功能:实现两个矩阵相乘的C语言程序,并将其输出 代码如下: #include "stdafx.h" #include "windows.h" void Mu ...

  6. Windows10下搭建Android Studio3.12开发环境

    1.准备工作: 操作系统:Windows10 专业版或企业版 JDK安装:参考文章 http://www.cnblogs.com/yuwentao/p/4742575.html =========== ...

  7. [C#]时间格式和字符串的相互转换

    一.字符串转化为时间格式 string date = "2018/9/27 10:53:56"; DateTime dt1 = DateTime.Parse(date);//方式1 ...

  8. Updates were rejected because the tip of your current branch is behind 问题出现解决方案

    提供如下几种方式: 1.使用强制push的方法(多人协作时不可取): git push -u origin master -f 2.push前先将远程repository修改pull下来 git pu ...

  9. 将string转为同名类名,方法名。(c#反射)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace stri ...

  10. android升级gradle到3.4.1

    这两天把gradle升级到了gradle-3.4.1 com.android.tools.build:gradle升级到了com.android.tools.build:gradle:2.3.0 结果 ...