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

zoj 2990 Decoding

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

zoj 2990 Decoding

#include <iostream>#include <string.h>#include <stdio.h>#include <algorithm>using namespace std;int n,m;int dir[4][2]={0,1,1,0,0,-1,-1,0};char str[1010];int bo[22][22];int vis[22][22];int check(int x,int y){ if(x<0||y<0||x>=n||y>=m||vis[x][y]) return 0; return 1;}int sum=0,limit;int ans[1010];void dfs(int x,int y,int d,int num,int po){ vis[x][y]=1; int xx=x+dir[d][0],yy=y+dir[d][1]; limit--; if(po==4) { ans[sum++]=num*2+bo[x][y]; po=0; if(limit<=0) return; if(check(xx,yy)) { dfs(xx,yy,d,0,0); } else { d=(d+1)%4; xx=x+dir[d][0],yy=y+dir[d][1]; dfs(xx,yy,d,0,0); } } else { if(check(xx,yy)) { dfs(xx,yy,d,num*2+bo[x][y],po+1); } else { d=(d+1)%4; xx=x+dir[d][0],yy=y+dir[d][1]; dfs(xx,yy,d,num*2+bo[x][y],po+1); } }}int main(){ int ncase,time=0; scanf("%d",&ncase); while(ncase--) { scanf("%d%d",&n,&m); printf("%d ",++time); scanf("%s",str); sum=0; int len=n*m,i,j; limit=len/5*5; for(i=0;i<n;i++) { for(j=0;j<m;j++) bo[i][j]=str[i*m+j]-'0'; } memset(vis,0,sizeof(vis)); dfs(0,0,0,0,0); while(ans[sum-1]==0)sum--; for(i=0;i<sum;i++) { if(ans[i]==0) printf(" "); else printf("%c",ans[i]-1+'A'); } printf("n"); } return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/365972.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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