Isabella's Message (2011icpc成都站I题)hdu4119

题目:点击打开链接

题意:一个矩阵每个格子有一个字母或者空格,现在有一个Mask旋转四次一定能覆盖所有的空格且不重复。然后Mask初始有四种不同的情况所以会产生四句话。要求输出所有单词都在字典里的那句话,如有多句则输出字典序最小的。

解题思路:由于当时重现赛的时候没有看到只有四个露出的,所以,就代码写的很长,我用的就是完全的暴力 ,仔细看看还是很容易的

#include 

using namespace std;
char ch[55][55],data[55][55];
char x[105][25];
char ans[2005];
char an[6][2005];
int su=0;
int sum=0;
int n;
void sov1()
{
    for(int i=0; i=0; i--)
        {
            if(data[i][j]=='*')
            {
                if(ch[j][n-1-i]=='.')
                {
                    if(ans[su-1]!=' '&&su!=0)
                    {
                        ans[su]=' ';
                        su++;
                        sum++;
                    }
                }
                else
                {
                    ans[su]=ch[j][n-1-i];
                    su++;
                }
            }
        }
    }
}
void sov3()
{
    for(int i=n-1; i>=0; i--)
    {
        for(int j=n-1; j>=0; j--)
        {
            if(data[i][j]=='*')
            {
                if(ch[n-1-i][n-1-j]=='.')
                {
                    if(ans[su-1]!=' '&&su!=0)
                    {
                        ans[su]=' ';
                        su++;
                        sum++;
                    }
                }
                else
                {
                    ans[su]=ch[n-1-i][n-1-j];
                    su++;
                }
            }
        }
    }
}
void sov4()
{
    for(int j=n-1; j>=0; j--)
        for(int i=0; i0)
                    strcpy(an[0],an[i]);
                printf("%s\n",an[0]);
            }
        }

    }
    return 0;
}


你可能感兴趣的:(思维)