栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 2530 Tetris Alphabet

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 2530 Tetris Alphabet

#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;char str[55][25],tmp[55][25],ans[27];int n,flag;int judge(int x,int y,char ch){    int j;    for (j=x;j<n;j++)    {        if (str[j][y]>='A'&&str[j][y]<='Z'&&str[j][y]!=ch)        { flag=1;return 1;        }    }    return 0;}void dfs(int x,int y,char ch){    int i,j,row,col,dir[4][2]={-1,0,1,0,0,-1,0,1};    for (i=0;i<4;i++)    {        row=dir[i][0]+x;        col=dir[i][1]+y;        if (row<n&&col<20&&row>=0&&col>=0&&tmp[row][col]==ch)        { if(judge(row,col,ch))return; tmp[row][col]='.'; dfs(row,col,ch); if(flag)tmp[row][col]=ch;        }    }}void slove1(){    int i,j,k=0;    for (j=0;j<20;j++)    {        for (i=n-1;i>=0;i--)        { flag=0; if (tmp[i][j]!='.') {     tmp[i][j]='.';     if(!judge(i,j,str[i][j]))         dfs(i,j,str[i][j]);     if(flag)tmp[i][j]=str[i][j];     else ans[k++]=str[i][j];     break; }        }    }    sort(ans,ans+k);    printf("%c",ans[0]);}void slove2(){    int i,j;    for (j=0;j<20;j++)    {        for (i=n-1;i>=0;i--)        { if (tmp[i][j]==ans[0]) {     tmp[i][j]='.';     dfs(i,j,ans[0]);     return; }        }    }}void Copy1(){    int i;    for (i=0;i<n;i++)strcpy(tmp[i],str[i]);}void Copy2(){    int i;    for (i=0;i<n;i++)strcpy(str[i],tmp[i]);}int main(){    int i,j,num=0,vis[27]={0};    scanf("%d",&n);    for (i=0;i<n;i++)    {        scanf("%s",str[i]);        strcpy(tmp[i],str[i]);        for(j=0;j<20;j++)        { if(str[i][j]!='.'&&!vis[str[i][j]-'A']) {     vis[str[i][j]-'A']=1;     num++; }        }    }    for (i=0;i<num;i++)    {        slove1();        Copy1();        slove2();        Copy2();    }    printf("n");    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/372588.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号