剪纸

https://hpuoj.com/contest/24/problem/F/

单点时限: 1.0 sec

内存限制: 512 MB

中国剪纸是一种用剪刀或刻刀在纸上剪刻花纹,用于装点生活或配合其他民俗活动的民间艺术。在中国,剪纸具有广泛的群众基础,交融于各族人民的社会生活,是各种民俗活动的重要组成部分。其传承赓续的视觉形象和造型格式,蕴涵了丰富的文化历史信息,表达了广大民众的社会认以、道德观念、实践经验、生活理想和审美情趣,具有认知、教化、表意、抒情、娱乐、交往等多重社会价值。
2006年5月20日,剪纸艺术遗产经国务院批准列入第一批国家级非物质文化遗产名录 。2009年9月28日至10月2日举行的联合国教科文组织保护非物质文化遗产政府间委员会第四次会议上,中国申报的中国剪纸项目入选“人类非物质文化遗产代表作名录”。

剪窗花最基本的操作为将剪纸进行多次对折,然后对对折之后的纸进行裁剪,展开后就是一个精美的艺术品。现在我们对问题进行化简,我们利用如下方法将一张形状矩形的纸按照对阵轴进行对折:

假设剪后的形状为一个三角形,则展开效果为:

现在给你一个对折两次且剪切后的图形,请你给出展开的图形形状。

输入格式

多组输入,处理到文件结束。
每组输入第一行两个数字n,m(1≤n,m≤100)。
接下来n行,每行m个字符,表示对折且剪切后的图形。
保证输入字符只包含 ‘.’ 和 ‘*’ 。

输出格式

输出展开后的图形。

样例

input

3 3
**.
*..
...

output

......
..**..
.****.
.****.
..**..
......

两种输出ac:

一: 

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char a[220][220];
int main()
{
    int n,m;
    while(~scanf("%d %d",&n,&m))
    {
        for(int i=0; i<n; i++)
            scanf("%s",&a[i]);
        for(int y=n-1,x=0; x<n; x++,y--)
        {
            for(int j=m-1; j>=0; j--)
                printf("%c",a[y][j]);
            for(int j=0; j<m; j++)
                printf("%c",a[y][j]);
            printf("\n");
        }
        for(int i=n-1,x=0; x<n; x++,i--)
        {
            for(int j=m-1; j>=0; j--)
                printf("%c",a[x][j]);
            for(int j=0; j<m; j++)
                printf("%c",a[x][j]);
            printf("\n");
        }
    }
    return 0;
}

 二:

#include<stdio.h>
#include<string.h>
char a[110][110];
int main()
{
    int n,m,i,j;
    while(~scanf("%d%d",&n,&m))
    {
        for(i=0; i<n; i++)
            scanf("%s",a[i]);
        for(i=n-1; i>=0; i--)
        {
            for(j=m-1; j>=0; j--)
                printf("%c",a[i][j]);
            printf("%s\n",a[i]);
        }
        for(i=0; i<n; i++)
        {
            for(j=m-1; j>=0; j--)
                printf("%c",a[i][j]);
            printf("%s\n",a[i]);
        }
    }
    return 0;
}

 

事常与人违,事总在人为。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵩韵儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值