zoukankan      html  css  js  c++  java
  • 51Nod 1289:大鱼吃小鱼(模拟, 栈)

    https://www.51nod.com/Challenge/Problem.html#!#problemId=1289

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

    输入

    第1行:1个数N,表示鱼的数量(1 <= N <= 100000)。
    第2 - N + 1行:每行两个数A[i], B[i],中间用空格分隔,分别表示鱼的大小及游动的方向(1 <= A[i] <= 10^9,B[i] = 0 或 1,0表示向左,1表示向右)。

    输出

    输出1个数,表示最终剩下的鱼的数量。

    输入样例

    5
    4 0
    3 1
    2 0
    1 0
    5 0

    输出样例

    2

    如果鱼的头是向右的就把鱼入栈,如果鱼头向左,就让它向左走吃鱼直到被吃或者走的尽头。

    #include<stdio.h>
    #define N 100020
    int a[N];
    int main()
    {
    	int n,i,len,j,sum,temp,s;
    	scanf("%d",&n);
    	len=1;
    	sum=0;
    	while(n--)
    	{
    		scanf("%d%d",&s,&temp);
    		if(temp==1)
    		{
    			a[len]=s;
    			len++;
    		}
    		
    		else
    		{	
    			if(len==1)
    				sum++;
    			else
    			{
    				for(i=len-1;i>=1;i--)
    					if(a[i]>=s)
    						break;
    					
    				len=i+1;	
    				if(len==1)
    					sum++;	
    			}
    		}
    	}
    	printf("%d
    ",sum+len-1);
            return 0;
    } 

    一道相似的题目:

    2160:数字游戏

    现在有n个数字依次进入一个栈,每个数字a进入栈的时候,如果栈顶元素小于a,则会将栈顶元素弹出,新的栈顶元素如果仍然小于a,则会将新的栈顶元素继续弹出,直到栈顶元素大于等于a为止,a才会加入栈。问n个数字依次进入后,最后栈里的数字依次是?

    输入

    输入第一行一个整数n(n<=100000),表示有n个数字依次进入栈。
    接下来n行,每行一个整数,表示第i个数字。

    输出

    若干行,表示最后栈中的数字。

    输入样例

    5
    5
    3
    2 
    4
    1

    输出样例

    5
    4
    1
    #include<stdio.h>
    #define N 100020
    int a[N];
    int main()
    {
    	int n,i,j,num;
    	scanf("%d",&n);
    	i=1;
    	n--;
    	scanf("%d",&a[1]);
    	while(n--)
    	{
    		scanf("%d",&num);
    		for(j=i;j>=1;j--)
    		{
    			if(a[j]>=num)
    			{
    				a[j+1]=num;	
    				break;
    			}		
    		} 
    		if(j==0)
    			a[1]=num;
    		i=j+1;
    	}
    	for(j=1;j<=i;j++)
    		printf("%d
    ",a[j]);
    } 
  • 相关阅读:
    python测试开发django-99.views视图中 locals() 函数使用
    python测试开发django-98.views视图函数中request参数详解
    jenkins学习18
    Assignment Problem的若干思考
    为博客园文章添加 “分享到Teams”按钮
    新书上市——Microsoft Teams 平台完全手册
    《Microsoft Teams 平台完全手册》第三章出炉
    Microsoft Teams平台手册公开邀请试读
    《Microsoft Teams平台完全手册》开工
    Teams 开发平台月报(2021-03)
  • 原文地址:https://www.cnblogs.com/zyq1758043090/p/11852859.html
Copyright © 2011-2022 走看看