zoukankan      html  css  js  c++  java
  • 谜题 (Puzzle,ACM/ICPC World Finals 1993,UVa227)

    题目描述:算法竞赛入门经典习题3-5

    题目思路:模拟题

    #include <stdio.h>
    #include <string.h>
    #define maxn 55
    char gird[maxn][maxn] ;
    char cmd[maxn] ;
    int blank_x,blank_y ;
    int main(int argc, char *argv[])
    {
        
        int flag = 1;
        for(int i=0;i<5;i++)
            gets(gird[i]) ;
        for(int i=0;i<5;i++)
            for(int j=0;j<5;j++)
                if(gird[i][j]==' '){
                    blank_x = i;
                    blank_y = j;
                }
        while(gets(cmd)){
            int len = strlen(cmd) ;
             for(int i=0;i<len;i++){
                 if(cmd[len-1] == '0' || cmd[i] == 'A' || cmd[i] == 'R' || cmd[i] == 'B' || cmd[i] == 'L' ){
                 if(cmd[i] == 'A' && blank_x != 0)
                {
                    gird[blank_x][blank_y] = gird[blank_x-1][blank_y];
                    gird[--blank_x][blank_y] = ' ';
                }
                if(cmd[i] == 'R' && blank_y != 4)
                {
                    gird[blank_x][blank_y] = gird[blank_x][blank_y+1];
                    gird[blank_x][++blank_y] = ' ';
                }
                if(cmd[i] == 'B' && blank_x != 4)
                {
                    gird[blank_x][blank_y] = gird[blank_x+1][ blank_y];
                    gird[++blank_x][ blank_y] = ' ';
                }
                if(cmd[i] == 'L' && blank_y != 0)
                {
                    gird[blank_x][blank_y] = gird[blank_x][ blank_y-1];
                    gird[blank_x][--blank_y] = ' ';
                }
        
             }
             else flag = 0;
        }
         if(flag)
        {
            for(int i = 0; i < 5; i++)
            {
                printf("%c %c %c %c %c
    ", gird[i][0], gird[i][1], gird[i][2], gird[i][3], gird[i][4]);
            }
        }
        else
            printf("This puzzle has no final configuration.
    ");
    
             }
        return 0;
    }
  • 相关阅读:
    URAL 2080 莫队
    Codeforces Round #361 (Div. 2) C D
    UVALive 7297 bfs
    UVALive 7472
    HDU 5773 最长上升子序列
    递归求解最大值和最小值
    数字方阵旋转问题
    实现循环队列的各种基本运算
    实现顺序栈的各种基本运算
    使用两个栈来实现队列
  • 原文地址:https://www.cnblogs.com/secoding/p/9484798.html
Copyright © 2011-2022 走看看