题目链接

https://www.acwing.com/problem/content/1980/

思路

我们将这个二元组进行排序后就可以得到一个a升序序列,然后将问题转化为判断当前位置的奶牛是否合法,如果合法的话,那么当前奶牛的前面所有奶牛的b点应该都小于当前这个奶牛的b,后面所有奶牛的b都应该大于当前奶牛的b,再进一步转化为前缀最大值和后缀最小值问题即可轻松解决

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 1000000009
#define endl "\n"
#define PII pair<int,int>
ll ksm(ll a,ll b) {ll ans = 1;for(;b;b>>=1LL) {if(b & 1) ans = ans * a % mod;a = a * a % mod;}return ans;
}ll lowbit(ll x){return -x & x;}const int N = 2e6+10;
vector<PII> V;
int premax[N],latemin[N];int main()
{int n;cin>>n;int a,b;for(int i = 1;i <= n; ++i) {cin>>a>>b;V.push_back({a,b});}sort(V.begin(),V.end());//让a有序int cnt = 0;int mx = V[0].second;premax[0] = V[0].second;latemin[n-1] = V[n-1].second;for(int i = 1;i < n; ++i){//求前缀最大值if(V[i].second > premax[i-1]) premax[i] = V[i].second;else premax[i] = premax[i-1];}for(int i = n-2; i >= 0; --i) {//求后缀最小值if(V[i].second < latemin[i+1]) latemin[i] = V[i].second;else latemin[i] = latemin[i+1];}latemin[n] = 0x3f3f3f3f;//考虑最后一个位置的后缀最小值应该是一个无穷,只需要判断前缀最大值即可int ans = 0;if(V[0].second < latemin[1]) ans++;for(int i = 1;i < n; ++i) {if(V[i].second >= premax[i-1] && V[i].second <= latemin[i+1]) ans++;//满足条件就将答案更新}cout<<ans<<endl;return 0;
}

AcWing 1978. 奶牛过马路(前缀和)相关推荐

  1. AcWing 1884. COW(前缀和)

    题目连接 https://www.acwing.com/problem/content/1886/ 思路 对于一个COW单词,因为不要求连续,所以我们只需要对C求一个前缀和,W求一个后缀和,然后循环一 ...

  2. AcWing 1945. 奶牛棒球(枚举+二分)

    题目链接 https://www.acwing.com/problem/content/1947/ 思路 因为第三头牛和第二头牛的间距是在[2Y-X,3Y-2x]以内的,所以我们可以对第三头牛进行二分 ...

  3. AcWing一排奶牛

    农夫约翰的 N 头奶牛排成一排. 每头奶牛都用一个整数品种 ID 标识,队列中第 i 头奶牛的 ID 为 Bi. 约翰认为如果有一大段连续的奶牛都具有相同的品种 ID,他的奶牛就会更加的引人注目. 为 ...

  4. AcWing 1959. 奶牛芭蕾(模拟,坐标变换)

    [题目描述] 为了挑战人们将奶牛视为笨拙生物的成见,农夫约翰的奶牛贝茜报名参加了芭蕾舞入门班. 她的最后一场演出是下周,约翰想帮她搭建一个足够大的长方形舞台,这样她就可以在不从舞台边沿跌落的情况下表演 ...

  5. AcWing2022寒假每日一题(1 月 2 日 ~ 1 月 15 日)

    目录 1/2 AcWing 2058. 笨拙的手指 1/3 (前缀和)AcWing 2041. 干草堆 1/4 (dfs暴力枚举)AcWing 2060. 奶牛选美 1/5 (bfs)AcWing 2 ...

  6. 寒假每日一题2022【week2 未完结】

    目录 1987. 粉刷栅栏[扫描线] 1978. 奶牛过马路[前缀最值] 1969. 品种邻近[哈希表] 1987. 粉刷栅栏[扫描线] 扫描线,注意将一个区间的左端点表示该区间.这样可以避免处理各种 ...

  7. 题目汇总(ACWing)

    枚举: 1.拍照 解题思路:枚举a1,求出每个ai,然后检查这个答案是否合法. 2.牛为什么过马路 解题思路:对于一对相同的字母,枚举中间是否存在没有记录的单个字符. 3.牛的基因组学 解题思路:暴力 ...

  8. AcWing蓝桥杯AB组辅导课10、疑难杂题

    文章目录 前言 例题1:AcWing 1242. 修改数组(并查集) 分析 题解:单链表式并查集 例题2:AcWing 1234. 倍数问题(背包问题+贪心) 分析 题解1:01背包问题,三维解法(贪 ...

  9. 算法基础(2) | 高精度、前缀和、差分

    文章目录 一.高精度 1.1 高精度加法 1.2 高精度减法 1.3 高精度乘法 1.4 高精度除法 二.前缀和 2.1 一维前缀和 2.2 二前缀和 三.差分 3.1 一维差分 3.2 二维差分 四 ...

最新文章

  1. 任正非致“背叛者”与给竞争对手捐款
  2. CF1413C Perform Easily(two pointers)
  3. go 输入输出流(fmt)
  4. SQL Server统计信息以及如何在SQL中执行更新统计信息
  5. 使用VS2012 C++ 进行单元测试
  6. excel 科学计数法转换成文本完整显示_Excel中的数字格式和文本格式转换
  7. USB协议详解第23讲(USB包-握手包及其工作方式)
  8. 趣味计算机专业比赛,你hua我猜 以梦为马——计算机科学系第三届你画我猜趣味比赛...
  9. Stacked Hourglass Networks简析
  10. 准确率、精确率、召回率、F值
  11. win11右键如何直接打开所有选项
  12. 兼容ie浏览器代码处理
  13. 《程序员延寿指南》的极简操作指南
  14. java中0是真是假_为什么0为假?
  15. English语法_动名词-概述
  16. PCI5565 PCI-5565 PMC5565 VMIC5565 反射内存 反射内存卡 GE反射内存
  17. (微软允许的激活方式)win8的激活以及重装系统后二次激活
  18. 亚马逊云科技 build on - 实验20220806
  19. 群狼调研开展某品牌家电销售渠道调查
  20. 企业微信ECharts 姓名拼音展示(“烫烫‎ ”)

热门文章

  1. 协方差矩阵、相关矩阵、相关函数的联系与区别
  2. svn在checkout数据仓库aaa时,出现如下错误:
  3. SQL 之连接查询
  4. 移动前端开发之viewport的深入理解 --- 待续
  5. YJX_rxjh_21_3.2.3
  6. Java设计模式开篇
  7. [IOI2018] seats 排座位
  8. PHP程序员必须收藏的资源大全
  9. win10 使用点滴
  10. Java 实现享元(Flyweight)模式