zoukankan      html  css  js  c++  java
  • 凉心的比赛补题

    F - 法法要穿过大门

     CodeForces - 935B 

    这一题不难,可是题目是老长老长的英文,而且还有一些我不懂的词,导致我理解题意就花了很长的时间。

    题意:统计法法一共穿过y=x这条直线几次(第一次不算)。

    观察:法法穿过y=x一定有这样一个条件:这次所在位置与上两步所处位置分别分布在y=x的上下两侧。

    代码实现思路:易发现——在y=x的上测的点满足y>x,而在y=x下测的点满足y<x,在y=x上的点满足y=x。于是,我们只要把每个点相对y=x的位置都记录下来,最后遍历求出满足条件的点的个数即可。

    代码:

    #include<iostream>
    using namespace std;
    char s[100010];
    int x[100010],y[100010],q[100010];
    int main()
    {
        int n;
        cin>>n;
        int coin=0;
        cin>>s;
        for(int i=0;i<=n-1;i++)
        {
            y[i]+=y[i-1];
            x[i]+=x[i-1];
            if(s[i]=='U') y[i]++;
            else x[i]++;
            if(x[i]>y[i]) q[i]=2;
            else q[i]=3;
            if(x[i]!=y[i]&&x[i-1]==y[i-1]&&q[i]!=q[i-2]) coin++;  
        }
        coin--;
        printf("%d",coin);
    }
  • 相关阅读:
    Shiro
    RabbitMQ
    RabbitMQ
    RabbitMQ
    RabbitMQ
    RabbitMQ
    RabbitMQ
    Java
    Java
    Java
  • 原文地址:https://www.cnblogs.com/Cnxz/p/12190039.html
Copyright © 2011-2022 走看看