• zzuli2470: 迷宫


    http://acm.zzuli.edu.cn/problem.php?id=2470

    题目描述

            X星球没有监狱,对于哪些犯罪的人。就是把他们放入迷宫里慢慢惩罚他们。 
            你作为一个迷宫构建师。你的任务就是生成符合要求的迷宫。 
            对于一个大小为n*m的迷宫,第一行房间编号从左往右为1~m, 第二行 
            房间的编号为m+1~2*m,以此类推。共有n*m个房间。 
            我们希望有的房间能到达另外的房间。所以对生成的迷宫有q个要求 
            对于每一个要求:k  ch。k代表房间编号,ch代表开口的方向。一共有两种取值: 
              ➀W:向下开口 ➁R:向右开口。 
            题目数据保证:➀迷宫的四周墙壁没有开口。 ➁要求可能重复 

     

    输入

    第一行输入三个整数:n, m, q。 (1<=n<=50, 1<=m<=50, 0=<q<=2*n*m-n-m) 
    接下来的q行,每一行输入一个k, ch (1<=k<=n*m, ch={'W', 'R'}) 

    输出

    生成符合要求的迷宫

    样例输入

    4 6 6
    16 W
    11 R
    11 R
    16 W
    1 R
    22 R
    

    样例输出

    +---+---+---+---+---+---+
    |       |   |   |   |   |
    +---+---+---+---+---+---+
    |   |   |   |   |       |
    +---+---+---+---+---+---+
    |   |   |   |   |   |   |
    +---+---+---+   +---+---+
    |   |   |   |       |   |
    +---+---+---+---+---+---+
    
    #include<stdio.h>
    #define N 55
    int temp1[N*N],temp2[N*N];
    int main ()
    {
    	int m,n,i,j,q,k;
    	char ch;
    	scanf("%d%d%d",&n,&m,&q);
    	while(q--)
    	{
    		scanf("%d %c",&k,&ch);
    		if(ch=='W')
    			temp1[k]=1;
    		else if(ch=='R')
    			temp2[k]=1;
    	}
    	for(i=0;i<m;i++)
    		printf("+---");
    	printf("+
    ");
    	for(i=0;i<n;i++)
    	{
    		for(j=1;j<=m;j++)
    			if(temp2[i*m+j-1]==0)
    				printf("|   ");
    			else
    				printf("    ");
    		printf("|
    ");
    		for(j=1;j<=m;j++)
    			if(temp1[i*m+j]==0)
    				printf("+---");
    			else
    				printf("+   ");
    		printf("+
    ");
    	}
    	return 0;
    } 
  • 相关阅读:
    移动端触摸右侧菜单栏,页面内容对应项滚动到最上方
    swiper使用中一些点的总结
    javaScript正则表达式入门
    javaScript之数组操作方法(一)
    初识vue
    焦点控制切换和轮播
    文本内容只显示两行,然后加...
    图片父容器高度不定的图片垂直居中
    css3图片垂直居中
    【C#】两个list根据某个元素比较差集
  • 原文地址:https://www.cnblogs.com/zyq1758043090/p/11852838.html
Copyright © 2020-2023  润新知