51 Nod 1289 大鱼吃小鱼
1289 大鱼吃小鱼
题目来源: Codility
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题
收藏
关注
有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右。游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼。从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示向右)。问足够长的时间之后,能剩下多少条鱼?
Input
第1行:1个数N,表示鱼的数量(1 <= N <= 100000)。
第2 - N + 1行:每行两个数A[i], B[i],中间用空格分隔,分别表示鱼的大小及游动的方向(1 <= A[i] <= 10^9,B[i] = 0 或 1,0表示向左,1表示向右)。
Output
输出1个数,表示最终剩下的鱼的数量。
Input示例
5
4 0
3 1
2 0
1 0
5 0
Output示例
2
#include<bits/stdc++.h>
using namespace std;
int a[100010];
int b[100010];
int lmax[100010];//当前位置的左边向右的鱼的最大值
int rmax[100010];//当前位置的右边向左的鱼的最大值
int main()
{
//freopen("in.txt","r",stdin);
int N;
cin>>N;
for(int i=0;i<N;i++)cin>>a[i]>>b[i];
int max_l=-1;int max_r=-1;
lmax[0]=-1;
rmax[N-1]=-1;
for(int i=0;i<N-1;i++)
{
if(b[i]==1)
{
if(a[i]>max_r)max_r=a[i];
}
else
{
if(a[i]>max_r)max_r=-1;
}
lmax[i+1]=max_r;
}
for(int i=N-1;i>=1;i--)
{
if(b[i]==0)
{
if(a[i]>max_l)max_l=a[i];
}
else
{
if(a[i]>max_l)max_l=-1;
}
rmax[i-1]=max_l;
}
int ans=0;
for(int i=0;i<N;i++)
{
if(b[i]==0)
{
if(a[i]>=lmax[i])ans++;
}
else
{
if(a[i]>=rmax[i])ans++;
}
}
cout<<ans<<endl;
return 0;
}
51 Nod 1289 大鱼吃小鱼相关推荐
- 51 nod 1427 文明 (并查集 + 树的直径)
1427 文明 题目来源: CodeForces 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 160 难度:6级算法题 安德鲁在玩一个叫"文明"的游戏.大妈正在 ...
- 1289 大鱼吃小鱼
1289 大鱼吃小鱼 基准时间限制:1 秒 空间限制:131072 KB 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼.从左到右 ...
- 51 nod 1405 树的距离之和
1405 树的距离之和 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 给定一棵无根树,假设它有n个节点,节点编号从1到n, 求任意两点之间的距离(最短路径)之和. ...
- 51 nod 1439 互质对(Moblus容斥)
1439 互质对 题目来源: CodeForces 基准时间限制:2 秒 空间限制:131072 KB 分值: 160 难度:6级算法题 有n个数字,a[1],a[2],-,a[n].有一个集合,刚开 ...
- [STL乱搞]51 Nod——1573 美丽的集合
[STL乱搞]51 Nod--1573 美丽的集合 题目梗概 在多重集之中,同一个元素可以出现多次. 我们现在有n个多重集合,第i个集合最开始都有一个元素ai(1≤i≤n). 定义多重集合的价值为子集 ...
- 51nod -1289 . 大鱼吃小鱼(思维)
1289 . 大鱼吃小鱼 题目来源: Codility 基准时间限制:1 秒 空间限制:65536 KB 分值: 5 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度 ...
- (模拟 - 栈应用)1289 大鱼吃小鱼
1289 大鱼吃小鱼 1 秒 131,072 KB 5 分 1 级题 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼.从左到右给出 ...
- 51nod - 1289 大鱼吃小鱼(栈)
思路: 向左走的可能会被向右走的吃,向右走的可能被向左的吃. 栈中存向右的小鱼. 如果当前鱼向左,则依次与栈顶鱼比较大小,如果能吃光则能存活:如果当前鱼向右,则加入栈. 最后栈中鱼的数量加上向左走存活 ...
- 51Nod 1289 大鱼吃小鱼 栈的简单模拟
传送门:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1289 emmmmmm-- 大概就是--①栈空:向左右,最终必然 ...
最新文章
- 在pycharm中安装第三方库
- Redis存储总用String?你大概错过了更优的使用方法
- 实战:搭建CA认证中心,使用CA证书搭建HTTPS
- springboot 详解 (四)redis filter
- 硬件能力与智能AI-Zoomla!逐浪CMS2 x3.9.2正式发布
- redis 公网ip访问_Redis很重要,怎么只允许指定IP访问?
- IIS 之 未能加载文件或程序集“IBM.Data.DB2”或它的某一个依赖项。试图加载格式不正确的程序。...
- 当你输入一个网址的时候,实际会发生什么?(转)
- IE故障修复之点击无反应
- 记一次外接键盘win键失灵
- 阅读笔记-2022-Enhancing Sequential Recommendation with Graph Contrastive Learning
- Mac下好用的软件推荐系统设置
- 批量将物流信息导出保存在表格中
- LRN和BN的数学公式理解与区别
- Twitter开发者账号【推特开发者文档系列10】——API参考索引
- vue给元素添加指令_Vue指令动态模糊元素
- 服务器关闭微软小娜,win10小娜总是自动弹出怎么禁止-禁止win10小娜自动弹出的方法 - 河东软件园...
- Arcgis属性表字段值批量替换
- 如何订到超便宜的机票
- 从one hot vector到Attention, Bert——NLP基本思想串连回顾