题干:

有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】大鱼吃小鱼相关推荐

  1. 51nod -1289 . 大鱼吃小鱼(思维)

    1289 . 大鱼吃小鱼 题目来源: Codility 基准时间限制:1 秒 空间限制:65536 KB 分值: 5 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度 ...

  2. 51nod - 1289 大鱼吃小鱼(栈)

    思路: 向左走的可能会被向右走的吃,向右走的可能被向左的吃. 栈中存向右的小鱼. 如果当前鱼向左,则依次与栈顶鱼比较大小,如果能吃光则能存活:如果当前鱼向右,则加入栈. 最后栈中鱼的数量加上向左走存活 ...

  3. 51Nod 1289 大鱼吃小鱼 栈的简单模拟

    传送门:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1289 emmmmmm-- 大概就是--①栈空:向左右,最终必然 ...

  4. 51nod 1289 大鱼吃小鱼

    有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼.从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示向右).问足够长的时间之后 ...

  5. 51Nod - 1289 大鱼吃小鱼

    有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼.从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示向右).问足够长的时间之后 ...

  6. 1289 大鱼吃小鱼

    1289 大鱼吃小鱼 基准时间限制:1 秒 空间限制:131072 KB 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼.从左到右 ...

  7. 51 Nod 1289 大鱼吃小鱼

    1289 大鱼吃小鱼  题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游 ...

  8. (模拟 - 栈应用)1289 大鱼吃小鱼

    1289 大鱼吃小鱼 1 秒 131,072 KB 5 分 1 级题 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼.从左到右给出 ...

  9. 51Nod 1289:大鱼吃小鱼(模拟, 栈)

    https://www.51nod.com/Challenge/Problem.html#!#problemId=1289 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动 ...

  10. 51nod大鱼吃小鱼

    https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1289 1289 大鱼吃小鱼  题目来源: Codility 基准时间限 ...

最新文章

  1. 软工实践原型设计——PaperRepositories
  2. 你没听说过的Go语言惊人优点
  3. nginx 502错误 upstream sent too big header while reading response header from upstream
  4. 【Python】【入门】一文带你掌握Python27入门 ~
  5. C# 实验四 获取系统时间、点击加一秒功能
  6. 可以编程的 “骰子” :带 LED、陀螺仪,WiFi!
  7. python求函数极值_python 遗传算法求函数极值的实现代码
  8. 4位加法器的设计代码verilog_HDLBits:在线学习Verilog(六 · Problem 25-29)
  9. IDEA快速修改类名和文件名
  10. 数组名与指向数组的指针之间的联系与区别【数据结构】
  11. Failed to find Build Tools revision 26.0.1
  12. Java中的Collections类– java.util.Collections
  13. 想要学习Java开发.应该从哪方面入手
  14. 活动目录(Active Directory)域故障解决实例(转载)
  15. iOS:NSDate的主要几种时间形式
  16. ABP框架 - 授权
  17. Python还有发展前景吗?现在该怎么去学习?
  18. 必修的十堂电影课(男人篇)
  19. 4.(地图数据篇)nginx代理地图服务--离线部署地图服务
  20. BackupPC - 恢复选项Restore options

热门文章

  1. html网页距离顶部50像素,HTML5 教程之CSS Padding(填充)
  2. tensorflow 指定cpu 但是还会运行 gpu_PyTorch VS TensorFlow 谁最强?这是标星 15000+ Transformers 库的运行结果...
  3. php上传文件损坏,PHP 上传文件故障排除
  4. ant4 多个form 验证_爬虫遇到头疼的验证码?Python实战讲解弹窗处理和验证码识别...
  5. idea中java文件怎么运行_Java入门基础篇-如何在Java中创建只读文件
  6. Asterisk学习进阶-3
  7. android远程linux命令,测试可用的Android远程语音识别实例
  8. uln2003驱动蜂鸣器_让蜂鸣器发声
  9. pycharm使用_后端开发使用pycharm的技巧
  10. ASP.Net请求处理机制初步探索之旅 - Part 3 管道