zoukankan      html  css  js  c++  java
  • 1327C

    题目大意:一个n*m的棋盘上有k个棋子,k个棋子相互关联,可以一起向上向下向左向右,当碰到边界时,如果继续移动会发生越界,那么该棋子会保持不动,其余棋子继续移动。问能否在2*n*m的移动次数内,使各个棋子到达其约定的位置。

    题解:将所有的棋子汇集于一点,然后蛇形遍历棋盘复杂度为n*m+n+m-3。(这种方法想到了,复杂度计算错了...然后直接就pass掉了QWQ)

    code:

    #include<bits/stdc++.h>
    using namespace std;
    const int N=300;
    int arr[N][N];
    int k;
    int stx[N],sty[N];
    int endx[N],endy[N];
    
    int main(){
        int n,m,k;
        cin>>n>>m>>k;
        for(int i=1;i<=k;i++) cin>>stx[i]>>sty[i];
        for(int i=1;i<=k;i++) cin>>endx[i]>>endy[i];
        string s="";
        for(int i=m-1;i>=1;i--) s+='L';
        for(int i=n-1;i>=1;i--) s+='U';
        for(int i=1;i<=m;i++){
            for(int j=1;j<=n-1;j++){
                s+=((i&1)? 'D':'U');
            }
            if(i!=m) s+='R';
        }
        cout<<s.size()<<endl;
        cout<<s<<endl;
        return 0;
    }
  • 相关阅读:
    使用Eclipse的坑
    约定优于配置
    Tomcat服务器使用和debug
    spring框架排错
    spring框架学习感悟
    Spring的标签和验证等模块
    11. Container With Most Water
    1367. Linked List in Binary Tree
    486. Predict the Winner
    205. Isomorphic Strings
  • 原文地址:https://www.cnblogs.com/Accepting/p/12674982.html
Copyright © 2011-2022 走看看