zoukankan      html  css  js  c++  java
  • 洛谷 P1503 鬼子进村

    题目背景

    小卡正在新家的客厅中看电视。电视里正在播放放了千八百次依旧重播的《亮剑》,剧中李云龙带领的独立团在一个县城遇到了一个鬼子小队,于是独立团与鬼子展开游击战。

    题目描述

    描述 县城里有n个用地道相连的房子,第i个只与第i-1和第i+1个相连。这是有m个消息依次传来

    1、消息为D x:鬼子将x号房子摧毁了,地道被堵上。

    2、消息为R :村民们将鬼子上一个摧毁的房子修复了。

    3、消息为Q x:有一名士兵被围堵在x号房子中。

    李云龙收到信息很紧张,他想知道每一个被围堵的士兵能够到达的房子有几个。

    输入输出格式

    输入格式:

    第一行2个整数n,m(n,m<=50000)。

    接下来m行,有如题目所说的三种信息共m条。

    输出格式:

    对于每一个被围堵的士兵,输出该士兵能够到达的房子数。

    输入输出样例

    输入样例#1:
    7 9
    D 3
    D 6
    D 5
    Q 4
    Q 5
    R
    Q 4
    R
    Q 4
    
    输出样例#1:
    1
    0
    2
    4
    

    说明

    若士兵被围堵在摧毁了的房子中,那只能等死了。。。。。。

    很水的一道题

    查询时找前驱和后继

    然后做差就好了

    WA成dog..

    屠龙宝刀点击就送

    #include <cstdio>
    #define N 50005 
    
    using namespace std;
    bool vis[N];
    int n,m,des[N],top;
    inline int max(int a,int b) {return a>b?a:b;}
    inline int min(int a,int b) {return a>b?b:a;}
    int main()
    {
        scanf("%d%d",&n,&m);
        char opt[5];
        for(int x,ans,lx,rx;m--;)
        {
            scanf("%s",opt);
            if(opt[0]=='R') vis[des[top--]]=0;
            else
            {
                scanf("%d",&x);
                if(opt[0]=='D') des[++top]=x,vis[x]=1;
                else
                {
                    if(vis[x])
                     {printf("0
    ");continue;}
                    lx=1;
                    rx=n; 
                    for(int j=1;j<=top;++j)
                    {
                        if(des[j]<x) lx=max(lx,des[j]);
                        if(des[j]>x) rx=min(rx,des[j]);
                    }
                    ans=rx-lx+1;
                    if(vis[lx]) ans--;
                    if(vis[rx]) ans--;
                    printf("%d
    ",ans);
                }
            }
        }
        return 0;
    }
    我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
  • 相关阅读:
    计算中文混合字符串长度(一)
    PHP截取含中文的混合字符串长度的函数
    获取星座的JS函数
    获取生日对应星座的PHP函数
    简单的 jQuery 浮动层随窗口滚动滑动插件实例
    MD5算法实现
    70. Climbing Stairs QuestionEditorial Solution
    167. Two Sum II
    167. Two Sum II
    303. Range Sum Query
  • 原文地址:https://www.cnblogs.com/ruojisun/p/7561351.html
Copyright © 2011-2022 走看看