【51nod-1289】大鱼吃小鱼
题干:
有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右。游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼。从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示向右)。问足够长的时间之后,能剩下多少条鱼?Input第1行:1个数N,表示鱼的数量(1 <= N <= 100000)。
第2 - N + 1行:每行两个数A ii, B ii,中间用空格分隔,分别表示鱼的大小及游动的方向(1 <= A ii <= 10^9,B ii = 0 或 1,0表示向左,1表示向右)。Output输出1个数,表示最终剩下的鱼的数量。Sample Input
5 4 0 3 1 2 0 1 0 5 0
Sample Output
2
解题报告:
用栈直接模拟,十分简单。向右游的就入栈,向左游的就依次判断出栈与否。如果栈为空并且来了一条往左游的鱼,那就ans++,最后ans+栈中元素的个数就是答案。
本题亦可以直接模拟,但是较繁琐,有空可以一试。
ac代码:
#include<iostream>
#include<cstdio>
#include<stack>using namespace std;
int main()
{stack< int > s;int n,x,d,flag;int ans=0;int top=0;scanf("%d",&n);for(int i = 1; i<=n; i++) {
// printf("\n****************************8\n") ;flag=0;scanf("%d%d",&x,&d);if(s.empty() && d==0) {ans++;}else if(s.empty()&&d==1) {s.push(x);}else if( !s.empty() && d==1 ) {s.push(x);}else {while(!s.empty()) {top=s.top();if(top>x) {flag=1;//表示向左游的这个鱼被吃掉了(就是 这鱼不够大 不足以吃掉所有的鱼)。 break; }else s.pop();}if(flag==0) ans++; } }printf("%d\n",s.size()+ans);return 0 ;
}
【51nod-1289】大鱼吃小鱼相关推荐
- 51nod -1289 . 大鱼吃小鱼(思维)
1289 . 大鱼吃小鱼 题目来源: Codility 基准时间限制:1 秒 空间限制:65536 KB 分值: 5 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度 ...
- 51nod - 1289 大鱼吃小鱼(栈)
思路: 向左走的可能会被向右走的吃,向右走的可能被向左的吃. 栈中存向右的小鱼. 如果当前鱼向左,则依次与栈顶鱼比较大小,如果能吃光则能存活:如果当前鱼向右,则加入栈. 最后栈中鱼的数量加上向左走存活 ...
- 51Nod 1289 大鱼吃小鱼 栈的简单模拟
传送门:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1289 emmmmmm-- 大概就是--①栈空:向左右,最终必然 ...
- 51nod 1289 大鱼吃小鱼
有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼.从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示向右).问足够长的时间之后 ...
- 51Nod - 1289 大鱼吃小鱼
有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼.从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示向右).问足够长的时间之后 ...
- 1289 大鱼吃小鱼
1289 大鱼吃小鱼 基准时间限制:1 秒 空间限制:131072 KB 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼.从左到右 ...
- 51 Nod 1289 大鱼吃小鱼
1289 大鱼吃小鱼 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游 ...
- (模拟 - 栈应用)1289 大鱼吃小鱼
1289 大鱼吃小鱼 1 秒 131,072 KB 5 分 1 级题 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼.从左到右给出 ...
- 51Nod 1289:大鱼吃小鱼(模拟, 栈)
https://www.51nod.com/Challenge/Problem.html#!#problemId=1289 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动 ...
- 51nod大鱼吃小鱼
https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1289 1289 大鱼吃小鱼 题目来源: Codility 基准时间限 ...
最新文章
- 软工实践原型设计——PaperRepositories
- 你没听说过的Go语言惊人优点
- nginx 502错误 upstream sent too big header while reading response header from upstream
- 【Python】【入门】一文带你掌握Python27入门 ~
- C# 实验四 获取系统时间、点击加一秒功能
- 可以编程的 “骰子” :带 LED、陀螺仪,WiFi!
- python求函数极值_python 遗传算法求函数极值的实现代码
- 4位加法器的设计代码verilog_HDLBits:在线学习Verilog(六 · Problem 25-29)
- IDEA快速修改类名和文件名
- 数组名与指向数组的指针之间的联系与区别【数据结构】
- Failed to find Build Tools revision 26.0.1
- Java中的Collections类– java.util.Collections
- 想要学习Java开发.应该从哪方面入手
- 活动目录(Active Directory)域故障解决实例(转载)
- iOS:NSDate的主要几种时间形式
- ABP框架 - 授权
- Python还有发展前景吗?现在该怎么去学习?
- 必修的十堂电影课(男人篇)
- 4.(地图数据篇)nginx代理地图服务--离线部署地图服务
- BackupPC - 恢复选项Restore options
热门文章
- html网页距离顶部50像素,HTML5 教程之CSS Padding(填充)
- tensorflow 指定cpu 但是还会运行 gpu_PyTorch VS TensorFlow 谁最强?这是标星 15000+ Transformers 库的运行结果...
- php上传文件损坏,PHP 上传文件故障排除
- ant4 多个form 验证_爬虫遇到头疼的验证码?Python实战讲解弹窗处理和验证码识别...
- idea中java文件怎么运行_Java入门基础篇-如何在Java中创建只读文件
- Asterisk学习进阶-3
- android远程linux命令,测试可用的Android远程语音识别实例
- uln2003驱动蜂鸣器_让蜂鸣器发声
- pycharm使用_后端开发使用pycharm的技巧
- ASP.Net请求处理机制初步探索之旅 - Part 3 管道