CF36B

· · 题解

看见别的题解的代码太过于复杂,我就自己来写了。
这道题可以在原来给你的图上画,不用新开一个二维数组了,可能省了一些时间吧。

一定要加 \text{freopen},否则就会全部 WA。

AC Code:

#include <bits/stdc++.h>
using namespace std;
string s1[305], ans[305];
int n, m;
int main()
{
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    cin >> n >> m;
    for (int i = 0; i < n; ++i)
            cin >> s1[i];
    int s = pow(n, m);//先求出最后大小
    for (int i = 0; i < s; ++i)
    {
        for (int j = 0; j < s; ++j) //循环整个大的画
        {
            int x = i;
            int y = j;//记录一下i,j
            int cnt = 0;
            for (int k = 0; k < m; ++k)
            {
                if (s1[x % n][y % n] == '*') //小的中找*
                {
                    cnt = 1;
                    break;
                }
                x /= n;
                y /= n;
            }
            cout << ((cnt) ? '*' : '.'); //通过cnt的值判断是哪个
        }
        cout << '\n';
    }
}