zoukankan      html  css  js  c++  java
  • 模拟——cf1301D

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long 
     
    int n,m,k,tot;
     
    vector<char>v[10005];//先把连续动作放在v里 
    struct Step{
        string s;
        int loop;
        Step(){}
    };
    vector<Step> ans;
     
    void solve(){
        int sum=0;
        for(int i=1;i<=tot;i++){
            if(v[i].size()==0)continue;
            if(v[i].size() && v[i][0]=='R'){//RRRR 
                int k=v[i].size();
                Step step;
                step.s="R";
                step.loop=k;
                ans.push_back(step);
                continue;
            }
            if(v[i].size() && v[i][0]=='L'){//LLLL
                int k=v[i].size();
                Step step;
                step.s="L";
                step.loop=k;
                ans.push_back(step);
                continue;
            }
            if(v[i].size() && v[i][0]=='U'){//UUUU
                int k=v[i].size();
                Step step;
                step.s="U";
                step.loop=k;
                ans.push_back(step);
                continue;
            }
            if(v[i].size() && v[i].size()>1 && v[i][0]=='D'){//DRU
                int k=v[i].size();
                if(k/3>0){
                    Step step;
                    step.s="DRU";
                    step.loop=k/3;
                    ans.push_back(step);
                }
                if(k%3){
                    Step step;
                    if(k%3==1){
                        Step step;
                        step.s="D";
                        step.loop=1;
                        ans.push_back(step);
                    } 
                    else if(k%3==2){
                        Step step;
                        step.s="DR";
                        step.loop=1;
                        ans.push_back(step);
                    }
                }
                continue;
            }
            if(v[i].size()==1 && v[i][0]=='D'){//D
                Step step;
                step.s="D";
                step.loop=1;
                ans.push_back(step);
                continue;
            }
        }
        cout<<ans.size()<<'
    ';
        for(int i=0;i<ans.size();i++)
            cout<<ans[i].loop<<" "<<ans[i].s<<'
    ';
        
    }
     
    int main(){
        int t=1;
        while(t--){
            cin>>n>>m>>k;
            int sum=n*m*4-2*n-2*m;
            if(sum<k){puts("NO");continue;}
            
            puts("YES");
            tot=0;
            if(m>1)++tot;
            for(int i=1;i<m;i++){
                v[tot].push_back('R');
                k--;
                if(k==0)break;        
            }
            if(k==0){solve();continue;}
            
            if(m>1)++tot;
            for(int i=1;i<m;i++){
                v[tot].push_back('L');
                k--;
                if(k==0)break;        
            }        
            if(k==0){solve();continue;}
            
            for(int i=1;i<n;i++){
                if(m>1)++tot;
                for(int j=1;j<m;j++){
                    v[tot].push_back('D');
                    k--;
                    if(k==0)break;
                    v[tot].push_back('R');
                    k--;
                    if(k==0)break;
                    v[tot].push_back('L');
                    k--;
                    if(k==0)break;
                }
                if(k==0)break;
                
                ++tot;
                v[tot].push_back('D');
                k--;
                if(k==0)break;
                
                ++tot;
                for(int j=1;j<m;j++){
                    v[tot].push_back('L');
                    k--;
                    if(k==0)break;    
                }
                if(k==0)break;
            }
            if(k==0){solve();continue;}
            
            ++tot;
            for(int i=1;i<n;i++){
                v[tot].push_back('U');
                k--;
                if(k==0)break;
            }
            if(k==0){solve();continue;}
            
            for(int i=1;i<=tot;i++)v[i].clear();    
        }
    }
  • 相关阅读:
    Kubernetes web界面kubernetes-dashboard安装【h】
    K8s+dashboard安装部署【h】
    kubernetes/dashboard Getting Started
    kubernetes/dashboard Creating sample user
    kubernetes安装dashboard步骤 【h】
    Kubernetes Dashboard的安装与坑【h】
    Kubernetes-kubectl The connection to the server localhost:8080 was refused -did you specify
    部署kubernetes1.8.3高可用集群
    linux磁盘读写性能优化
    alias实现命令别名
  • 原文地址:https://www.cnblogs.com/zsben991126/p/12310156.html
Copyright © 2011-2022 走看看