zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 53C(二分,思维|构造)

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e6+6;
    int x[N],y[N];
    int sx,sy,n;
    char s[N];
    bool check(int m)
    {
        for(int i=1;i<=n-m+1;i++)
        {
            int tx=x[n]-x[i+m-1]+x[i-1];  //当前原来选项造成的横坐标影响
            int ty=y[n]-y[i+m-1]+y[i-1];  //当前原来选项造成的纵坐标影响
            int ex=sx-tx, ey=sy-ty;        //消除当前影响
            if(m>=(abs(ex)+abs(ey)) && (m-abs(ex)-abs(ey))%2==0) //可以构造
                return 1;
        }
        return 0;
    }
    int main()
    {
        scanf("%d",&n);
        scanf("%s",s+1);
        x[0]=y[0]=0;
        for(int i=1;i<=n;i++){
            x[i]=x[i-1];
            y[i]=y[i-1];  //累积前面步数的结果
            if(s[i]=='L')
                x[i]-=1;    //当前步数造成的影响
            else if(s[i]=='R')
                x[i]+=1;
            else if(s[i]=='D')
                y[i]-=1;
            else
            y[i]+=1;
        }
        scanf("%d %d",&sx,&sy);       //终点
        int l=0,r=n,ans=-1;
        while(l<=r){              //二分答案
            int mid=(l+r)>>1;
            if(check(mid))
                ans=mid,r=mid-1;
            else
                l=mid+1;
        }
        printf("%d ",ans);
    }
    //待温习

    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    判断奇偶数2
    判断奇偶数
    15.09.29
    .
    Java代码
    Handler 接收Parcelable ArrayList时返回空的错误
    Android Binder设计与实现
    xml解析代码示例
    解析rss和atom文件出现乱码问题
    使用Html.fromHtml将html格式字符串应用到textview上面
  • 原文地址:https://www.cnblogs.com/ldudxy/p/9942735.html
Copyright © 2011-2022 走看看