描述

  夏天又到了,奶牛贝里斯开始变得非常懒惰。他想要站在一个地方,然后只走很少的一段路,就能吃到尽可能多的美味的青草。
  有N块草坪排列在一条直线上,第i个草坪拥有g_i数量的青草,第i个草坪所在的位置是x_i。奶牛贝里斯想要在直线上选择一个点作为他的初始点(初始点有可能和草坪的位置重合),这样他就能吃到以这个点为中点距离不超过K的位置上的所有青草。
  如果初始点可以自由选择的话,请帮助贝里斯计算他最多能吃到的青草的数量。

输入输出格式

输入

  第一行是两个正整数,表示N和K。
  第2行到第N+1行,每行两个整数,第i行的两个整数表示第i个草坪的g_i和x_i。

输出

  输出贝里斯最多能吃到的青草数量。

输入输出样例

样例输入1

4 3
4 7
10 15
2 2
5 1

样例输出1

11

样例说明

  如果贝里斯将初始点选择在x=4的位置,那么他可以吃到x=1,x=2和x=7这三个地方的青草,总共是11。

数据规模

  1<=N<=100000,1<=g_i<=10000,0<=x_i<=1000000,1<=k<=2000000。

解题思路

  刚开始我想用前缀和,然后每次枚举区间比较最大值,但是我最后还是用的类似于队列的东西来做(因为老师强制性),每次用一个左端点和右端点移动就行。

题解

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int n,k,maxn,ans;
 4 int mp[5000001];//存青草地的
 5 int read()//快读
 6 {
 7     int x=0,f=1;
 8     char ch=getchar();
 9     while(ch<'0'||ch>'9'){
10         if(ch=='-')
11             f=-1;
12         ch=getchar();
13     }
14     while(ch>='0'&&ch<='9'){
15         x=(x<<1)+(x<<3)+(ch^48);
16         ch=getchar();
17     }
18     return x*f;
19 }
20 int main()
21 {
22     cin>>n>>k;
23     k*=2;//方便后续操作
24     for(int i=1;i<=n;i++)
25     {
26         int x,w;
27         w=read();
28         x=read();
29         mp[x]=w;//存入
30     }
31     int l=0,r=k,ans=0;//l一定要从0开始,我之前一个多小时WA就是因为它
32     for(int i=l;i<=r;i++)
33     {
34         ans+=mp[i];//求区间和
35     }
36     maxn=max(maxn,ans);
37     while(r<=5000001)//因为不知道大小,只能硬枚举
38     {
39         ans-=mp[l];//减去左端点的
40         l++;//右移
41         r++;//右移
42         ans+=mp[r];//加上右端点的
43         maxn=max(maxn,ans);//取最优解
44     }
45     cout<<maxn;//输出
46 }

转载于:https://www.cnblogs.com/hualian/p/11185299.html

usaco2013 mar【懒惰的奶牛】相关推荐

  1. bzoj 1638: [Usaco2007 Mar]Cow Traffic 奶牛交通(拓扑排序?+DP)

    1638: [Usaco2007 Mar]Cow Traffic 奶牛交通 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 971  Solved: 37 ...

  2. linux禁用用户账号,linux 如何禁用账号和解除禁用账号

    有wsdl地址生成客户端调用 新建Java Project 1.项目名称:HelloWorldClient 2.建好的项目 3.生成客户端 选择HelloWorldClient 填写wsdl地址(参考 ...

  3. [Usaco2010 Mar]gather 奶牛大集会

    1827: [Usaco2010 Mar]gather 奶牛大集会 Time Limit: 1 Sec  Memory Limit: 64 MB Submit: 1129  Solved: 525 [ ...

  4. BZOJ 1827: [Usaco2010 Mar]gather 奶牛大集会 树形DP

    [Usaco2010 Mar]gather 奶牛大集会 Bessie正在计划一年一度的奶牛大集会,来自全国各地的奶牛将来参加这一次集会.当然,她会选择最方便的地点来举办这次集会.每个奶牛居住在 N(1 ...

  5. bzoj 3375: [Usaco2004 Mar]Paranoid Cows 发疯的奶牛(二分)

    3375: [Usaco2004 Mar]Paranoid Cows 发疯的奶牛 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 28  Solved ...

  6. bzoj 1657: [Usaco2006 Mar]Mooo 奶牛的歌声(单调栈)

    1657: [Usaco2006 Mar]Mooo 奶牛的歌声 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 848  Solved: 594 [Sub ...

  7. bzoj 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛(BFS)

    1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1293  Solved ...

  8. BZOJ 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛【DP】

    1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec Memory Limit: 64 MB Description 奶牛们在被划分成N ...

  9. BZOJ 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 bfs

    1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1290  Solved ...

最新文章

  1. 爬取小说1--高并发
  2. 最强黑客库Blackbone使用教程
  3. 如何学习配置webpack(一)
  4. [云炬创业基础笔记]第六章商业模式测试7
  5. Git之如何解决Error:pathspec ‘/layout/radar_chart.xml‘ did not match any file(s) known to
  6. matlab短均线滞后项,均线理论的滞后性问题
  7. 转载 : JSP取得绝对路径
  8. 截流式合流制设计流量计算_截流式合流制截污管设计污水量的实测统计方法
  9. 页面缓存 OutputCache
  10. HTTP Get与Post的区别
  11. 时区时钟插件html,日期、时间选择控件 - datetimepicker
  12. 用单片机c语言输入8位输出,单片机C语言教程(二)
  13. Java冒泡排序详解
  14. 腾讯云轻量应用服务器云硬盘服务简单性能测试
  15. 网页如何开启Gzip压缩
  16. matlab受力分析,基于Matlab的多支座蒸压釜的受力分析和强度计算
  17. 洛谷.3733.[HAOI2017]八纵八横(线性基 线段树分治 bitset)
  18. Java代码简洁-validation参数校验
  19. 海康威视摄像头web二次开发(angular)
  20. 终日乾乾,与时偕行——2022年度吴文俊人工智能最高成就奖:郑南宁院士

热门文章

  1. Nginx的upstream_response_time
  2. POI异步导入Excel兼容xsl和xlsx
  3. PHP----------线程安全和非线程安全的介绍
  4. DBA(七):PXC、MySQL存储引擎
  5. DBA(六):MHA集群
  6. 因 Redis 分布式锁造成的 P0 级重大事故,整个项目组被扣了绩效。。。
  7. 前后端分离模式下的权限设计方案
  8. Google下的这盘“小”棋
  9. 关于小型长周期项目的一些建议
  10. 你们都在用IntelliJ IDEA吗?或许你们需要看一下这篇博文