• Codeforces Round #659 (Div. 2) B1. Koa and the Beach (Easy Version)


     题意 小明从一岸游泳到另一岸,每片区域有水深,一旦水深超过L,小明就会淹死

    同时每段时刻有海浪和退潮  

    搜索一下 然后记忆化一下 

    老了,搜索写半天 

    #include<bits/stdc++.h>
    using namespace std;
    /*int main()
    {
       // freopen("data2.in", "r", stdin);
       // freopen("data2.out", "w", stdout);
        int n,m;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            int x;
            cin>>x;
            a[i]=a[i-1]+x;
        }
    
        cin>>m;
        while(m--)
        {
    
            int l,r;
            cin>>l>>r;
            if(l==r)
                cout<<a[l]-a[l-1]<<endl;
            else
                cout<<a[r]-a[l-1]<<endl;
        }
    }*/
    int d[105];
     int n,k,l;
     int vis[105][205];
    int dfs(int x,int t)
    {
        if(vis[x][t])
        return 0;
        vis[x][t]=1;
        int flag=0;
        if(x==n+1)
        return 1;
        t=t%(2*k);
        int ad;
        if(t<=k)
            ad=t;
        else
            ad=k-(t-k);
        if(x!=0&&(d[x]+ad)>l) return 0;
            flag=max(flag,dfs(x+1,t+1));
        t++;
        t=t%(2*k);
        if(t<=k)
            ad=t;
        else
            ad=k-(t-k);
        if(x>0)
        {
           if(d[x]+ad>l)
           return max(flag,0);
        }
        flag=max(dfs(x,t),flag);
        return flag;
    }
    int main()
    {
        int t;
        cin>>t;
        while(t--)
        {   memset(vis,0,sizeof(vis));
            int flag=0;
            cin>>n>>k>>l;
            for(int i=1;i<=n;i++) {
                    cin>>d[i];
                    if(d[i]>l)
                     flag=1;
            }
            if(flag){cout<<"NO"<<endl;continue;}
            if(dfs(0,0))cout<<"YES"<<endl;
            else
                cout<<"NO"<<endl;
        }
    }
    /*int main()
    {
        // freopen("data.in", "r", stdin);
            //freopen("test.in", "w", stdout);
        int t;
        cin>>t;
        mt19937 u32Rnd(time(0));
        cout<<t<<endl;
        while(t--)
        {
    
          int n;
          while((n=u32Rnd())<1);
          cout<<n<<endl;
        }
    }*/
    
    
     
  • 相关阅读:
    rabbimq连接问题处理
    svn小设置
    日志的乱码,以及数据库编码问题
    Intellij Idea 14 使用jetty-maven-plugin配置运行web工程
    心血来潮
    maven nexus 私服的搭建学习
    致成长——毕业一周年
    2015-7-2
    我的JQuery复习笔记之①——text(),html(),val()的区别
    【转】title与alt的区别
  • 原文地址:https://www.cnblogs.com/acmLLF/p/13386966.html
Copyright © 2020-2023  润新知