| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 580 人关注过本帖
标题:关于字母移动的,我实在是没有想法,求哪位大神告诉我思路就行,谢谢
只看楼主 加入收藏
icanbestrong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:100
专家分:138
注 册:2013-3-13
结帖率:50%
收藏
已结贴  问题点数:23 回复次数:4 
关于字母移动的,我实在是没有想法,求哪位大神告诉我思路就行,谢谢
2x3=6个方格中放入ABCDE五个字母,右下角的那个格空着。

    和空格子相邻的格子中的字母可以移动到空格中,比如,图中的C和E就可以移动,移动后的局面分别是:

A B
D E C

A B C
D   E

    为了表示方便,我们把6个格子中字母配置用一个串表示出来,比如上边的两种局面分别表示为:

AB*DEC
ABCD*E

    题目的要求是:请编写程序,由用户输入若干表示局面的串,程序通过计算,输出是否能通过对初始状态经过若干次移动到达该状态。可以实现输出1,否则输出0。初始状态为:ABCDE*
   
    用户输入的格式是:先是一个整数n,表示接下来有n行状态。程序输出也应该是n行1或0
    例如,用户输入:

3
ABCDE*
AB*DEC
CAED*B

    则程序应该输出:
1
1
0
我是想过才上传的,只要告诉我思路就行,谢谢了
搜索更多相关主题的帖子: 编写程序 字母 格子 用户 
2013-10-14 16:13
C_printf
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:122
注 册:2010-1-26
收藏
得分:12 
#define sw(_a,_b,_c) {int _t = _c[_a];_c[_a] = _c[_b];_c[_b] = _t;}

char s[7] = "abcde*";
int o[][5] = {
    {0,1,3,-1},
    {1,0,2,4},
    {2,1,5,-1},
    {3,0,4,-1},
    {4,1,3,5},
    {5,2,4,-1}};

char buf[7] = {0};

int endFlag = 0;

int ii1 =1,ii2 =0;

void p(char*d,int i1,int i2);

void pp(int* d,char* b)
{
    for(int i = 0; i < 4; i++)
    {
        if(-1 == d[i]) break;
        if(d[0] == d[i]) continue;
        sw(d[0],d[i],b);
        p(b,d[0],d[i]);
    }
}

void p(char*d,int i1,int i2)
{

    if(endFlag == -1 || endFlag >144) return;
    if(i1 == ii2&&i2 == ii1)
    {
        return;
    }
    ii1 = i1;
    ii2 = i2;
    if(!strcmp(buf,d))
    {
        endFlag =-1;
        return;
    }
    endFlag++;
    char* b = d;
    while(*d!=0&&*d++!='*');
    pp(o[d-b-1],b);
}

int _tmain(int argc, _TCHAR* argv[])
{
    while(1)
    {
        endFlag = 0;
        ii1 =1,ii2 =0;
        scanf("%s",buf);
        fflush(stdin);
        p(s,0,0);

        if(endFlag == -1)
        {
            puts("Ok!");
        }
        else
        {
            puts("no found");
        }
    }
    getchar();
    return 0;
}
2013-10-14 18:22
icanbestrong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:100
专家分:138
注 册:2013-3-13
收藏
得分:0 
在下愚昧,往大牛解释一下
2013-10-14 19:34
xp0213
Rank: 7Rank: 7Rank: 7
来 自:湖北武汉
等 级:黑侠
威 望:1
帖 子:210
专家分:522
注 册:2011-10-26
收藏
得分:12 
表示不会
2013-10-14 19:59
icanbestrong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:100
专家分:138
注 册:2013-3-13
收藏
得分:0 
我只知道是早些年的蓝桥杯题,看来我还得再继续修行啊
2013-10-14 20:42
快速回复:关于字母移动的,我实在是没有想法,求哪位大神告诉我思路就行,谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022480 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved