题目描述

Farmer John’s N cows (1 <= N <= 50,000) are grazing along a one-dimensional fence. Cow i is standing at location x(i) and has height h(i) (1 <= x(i),h(i) <= 1,000,000,000).

A cow feels “crowded” if there is another cow at least twice her height within distance D on her left, and also another cow at least twice her height within distance D on her right (1 <= D <= 1,000,000,000). Since crowded cows produce less milk, Farmer John would like to count the number of such cows. Please help him.

FJ有N(1 <= N <= 50,000)头奶牛沿着一维的栅栏吃草,第i头奶牛在目标点x(i) ,它的身高是 h(i) (1 <=x(i),h(i) <= 1,000,000,000)。

当一头奶牛左边D距离内而且右边D距离内有身高至少是它的两倍的奶牛,t (1 <= D <= 1,000,000,000),它就会觉得拥挤。

请计算觉得拥挤的奶牛的数量。

输入格式

  • Line 1: Two integers, N and D.

  • Lines 2…1+N: Line i+1 contains the integers x(i) and h(i). The locations of all N cows are distinct.

输出格式

  • Line 1: The number of crowded cows.

输入 #1

6 4
10 3
6 2
5 3
9 7
3 6
11 2

输出 #1

2

跑两遍单调队列,每一遍都维护一个单调递减的队列,对符合的元素进行标记;当一个元素被标记两遍以后,符合要求;两遍单调队列难想,其他的都是单调队列板子;

代码:

#include<bits/stdc++.h>
using namespace std;
struct Node{int x,h;
}a[50100];
bool cmp(Node p,Node q){return p.x<q.x;
}
struct Nod{int post,date;
}sta[50100];
bool vis[50100][3];
int main(){int n,d;scanf("%d%d",&n,&d);for(int i=1;i<=n;i++){scanf("%d%d",&a[i].x,&a[i].h);}sort(a+1,a+n+1,cmp);int ans=1,head=1;for(int i=1;i<=n;i++){while(head<=ans&&sta[ans].date<=a[i].h){ans--;}sta[++ans].date=a[i].h;sta[ans].post=a[i].x;if(ans==1) continue;while(head<=ans&&sta[head].post<a[i].x-d){head++;}if(sta[head].date>=2*a[i].h){//cout<<i<<" "<<a[i].x<<endl; vis[i][1]=true;}}for(int i=1;i<=n;i++){sta[i].date=sta[i].post=0;//清0,特别注意}ans=1,head=1;for(int i=n;i>=1;i--){while(head<=ans&&sta[ans].date<=a[i].h){ans--;}sta[++ans].date=a[i].h;sta[ans].post=a[i].x;if(ans==1) continue;while(head<=ans&&sta[head].post>a[i].x+d){head++;}if(sta[head].date>=2*a[i].h){//cout<<i<<" "<<a[i].x<<endl;vis[i][2]=true;}}int sum=0;for(int i=1;i<=n;i++){if(vis[i][1]&&vis[i][2]){sum++;}}printf("%d\n",sum);return 0;
}

[USACO13NOV]挤奶牛Crowded Cows(洛谷 P3088)相关推荐

  1. 挤奶牛Crowded Cows 洛谷p3088

    题目描述 Farmer John's N cows (1 <= N <= 50,000) are grazing along a one-dimensional fence. Cow i ...

  2. Crowded Cows(洛谷P3088)

    [USACO13NOV]CrowdedCowsS[USACO13NOV]Crowded Cows S[USACO13NOV]CrowdedCowsS 传送门 思路 先看数据, 对于 202020 %的 ...

  3. BZOJ1232 安慰奶牛cheer (洛谷2916)

    标签:并查集,最小生成树 tips:bzoj这题为权限题,可以去洛谷2916提交 Description Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路.道路被用来连接N ( ...

  4. 分裂的奶牛群(洛谷P2907题题解,Java语言描述)

    题目要求 P2907题目链接 分析 奶牛群分流,假设牛群有n头牛,能分,二者差k头,则分别为: (num-limit)/2 (num+limit)/2 分流条件: (num-limit)>0,因 ...

  5. 贪心策略构筑“奶牛铁塔”(洛谷P2676题题解,Java语言描述)

    题目要求 P2676题目链接 分析 哈哈哈,好一个"超级书架"+"奶牛铁塔",哈哈哈-- 这题就是用贪心策略,需要排一个序,然后每次选最高大强壮的奶牛加入&qu ...

  6. P3088 [USACO13NOV]CROWDED COWS S

    https://www.luogu.com.cn/problem/P3088 题目描述 Farmer John's N cows (1 <= N <= 50,000) are grazin ...

  7. 洛谷·bzoj·伟大的奶牛聚集Great Cow Gather

    初见安~~这里是传送门:洛谷P2986 & bzoj P1827 题目描述 Bessie is planning the annual Great Cow Gathering for cows ...

  8. [洛谷P2124] 奶牛美容

    洛谷题目链接:奶牛美容 题目描述 输入输出格式 输入格式: 输出格式: 输入输出样例 输入样例#1: 6 16 ................ ..XXXX....XXX... ...XXXX... ...

  9. 洛谷1345 [Usaco5.4]奶牛的电信

    题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系,于是她们建立了一个奶牛电脑网络,以便互相交流.这些机器用如下的方式发送电邮:如果存在一个由c台电脑组成的序列a1,a2,...,a(c),且a1与a2相 ...

最新文章

  1. MySQL IN、Exist关联查询时,我们为什么建议小表驱动大表?
  2. 可怕!如果张东升是个程序员......
  3. Ajax.net显示错误信息
  4. 学校管理系统逻辑关系
  5. mysql accountlevel1_mysql---修改表结构
  6. 动态获取textarea后面的p标签_HTML简单标签连起实现的小玩意:
  7. Python与机器视觉(x)windows下import cv2报错dll
  8. CES 2021落下帷幕 未来3年展会时间已公布
  9. android仿空间photoview,PickPhotoView:一个Android照片选择器
  10. 怎么估算空间利用率?新研发传感器分分钟搞定!
  11. Python selenium 简单的实现大麦网自动购票过程
  12. 《MIT科技评论》“35位35岁以下科技创新青年”名单出炉!AI领域有5人入选 | 2020中国区...
  13. CMOS反相器的传输延时
  14. 自我激励的有效方法20个(推荐)
  15. 如何对文本框进行功能测试
  16. 10.业余无线电术语
  17. 我大学时代的文章,大学我很怀念!
  18. Android版Google Maps入门:高级
  19. 云计算实训室课程体系设计
  20. UE4 sequence 播放速率的调整(4.27)

热门文章

  1. 计算机软件的专利保护
  2. ArcGIS制作经纬格网地图
  3. 计算机网络(2)--- 因特网的发展阶段与组织
  4. 互联网赚钱的项目有哪些?6个互联网赚钱模式
  5. Window应急响应(六):NesMiner挖矿病毒
  6. 移动端SEO之用户体验优化提升方法
  7. 一些与OWL相关的推理机的区别(如:Jess、Jena、Pellet等)
  8. [Demo]提取个人博客园闪存+评论
  9. XCTF Leaking
  10. 2021第二届大海道越野耐力赛暨中国汽车越野锦标赛分站赛