1289 . 大鱼吃小鱼
题目来源: Codility
基准时间限制:1 秒 空间限制:65536 KB 分值: 5
有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 <iostream>
#include <cstdio>
#include <cmath>
#include <vector>
#include <cstring>
#include <string>
#include <algorithm>
#include <string>
#include <set>
#include <functional>
#include <numeric>
#include <sstream>
#include <stack>
#include <map>
#include <queue>#define CL(arr, val)    memset(arr, val, sizeof(arr))#define ll long long
#define inf 0x7f7f7f7f
#define lc l,m,rt<<1
#define rc m + 1,r,rt<<1|1
#define pi acos(-1.0)#define L(x)    (x) << 1
#define R(x)    (x) << 1 | 1
#define MID(l, r)   (l + r) >> 1
#define Min(x, y)   (x) < (y) ? (x) : (y)
#define Max(x, y)   (x) < (y) ? (y) : (x)
#define E(x)        (1 << (x))
#define iabs(x)     (x) < 0 ? -(x) : (x)
#define OUT(x)  printf("%I64d\n", x)
#define lowbit(x)   (x)&(-x)
#define Read()  freopen("a.txt", "r", stdin)
#define Write() freopen("dout.txt", "w", stdout);
#define N 100005
using namespace std;
int main()
{//Read();stack<int>s;int n,a,b,m;scanf("%d",&n);m=n;while(n--){scanf("%d%d",&a,&b);if(b==1) s.push(a);else{while(!s.empty()){if(a>s.top()) {s.pop();m--;}else { m--;break;}}}}printf("%d\n",m);return 0;
}

51nod -1289 . 大鱼吃小鱼(思维)相关推荐

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

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

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

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

  3. 51nod 1289 大鱼吃小鱼

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

  4. 51Nod - 1289 大鱼吃小鱼

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

  5. 1289 大鱼吃小鱼

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

  6. 51 Nod 1289 大鱼吃小鱼

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

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

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

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

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

  9. 51nod 1851 俄罗斯方块(思维题)

    分析:假设n>=m,m为1,2单独讨论下,否则可以用第二行第一个把所有黑块搞到2x2的格子里,不断用凸出来的那个角一列一列把黑的变白就行了.然后只要黑色有偶数块都可以构造出来.复杂度O(nm) ...

最新文章

  1. 明晚8点公开课 | 用AI给旧时光上色!详解GAN在黑白照片上色中的应用
  2. 特征工程之MinMaxScaler、StandardScaler、Normalizer、Binarizer
  3. VS无法读取项目文件?
  4. 面试官问:上亿数据量下,Kafka是如何优化JVM GC问题的?
  5. 《工作细胞》电影观后感
  6. [渝粤教育] 四川农业大学 宏观经济学 参考 资料
  7. 一步一步图文介绍SpriteKit使用TexturePacker导出的纹理集Altas
  8. 在linux下vcd光盘提取,linux下抓取Vcd的视频文件[Linux安全]
  9. C++求字符串长度的两种方法
  10. 随想录(写给那些学校不是985、211的同学们)
  11. 字符编码——简体中文编码中区位码、国标码、内码、外码、字形码的区别及关系
  12. Oracle 函数编写
  13. 备受知名投资人青睐的Pocket Network,潜力几何?
  14. CPP QT实现excel的冻结窗格
  15. 深入浅出人脸识别原理
  16. 献给面试学生 关键字const是什么意思 ESP(译者:Embedded Systems Programming) --Dan Saks概括了const的所有用法
  17. AD18运行PCB DRC显示一处警告, Design contains shelved or modified (but not repoured) polygons.
  18. display与visibility可见性、内补白与外补白
  19. 实战day01(二)----电商行业的背景介绍
  20. 表情识别(七)--面部表情识别阶段综述

热门文章

  1. 软考真的没用了吗?到底要不要考?
  2. 微软:现在已不是对 Linux 感情用事的时代(转)
  3. Python10个与数学有关的简单实例代码
  4. 1.62亿美元收购Area 1 Security,Cloudflare在零信任安全平台扩展上迈出的重要一步
  5. python怎样执行curl命令_如何使用python执行curl命令
  6. Python机器科学计算库的使用
  7. c java python sql是什么意思_SQL、Java、Python、C++ 是当今最顶级的技术?
  8. 如何抵御社工库类的黑客攻击?
  9. CC2540 单模式低功率蓝牙解决方案
  10. 关于前端利用jsencrypt.js进行RSA加密