zju 2529 DomiNo Grid
来源:互联网 发布:python社交数据可视化 编辑:程序博客网 时间:2024/04/27 15:05
简单提,只有广搜可以过
#include <iostream>
#include <string>
#include <queue>
using namespace std;
typedef struct
{
int x, y;
char c;
}Node;
int m, n;
char a[501][501];
int d[8][3][2] = {
{{-1,0},{-1,-1},{-1,1}},//n
{{-1,1},{-1,0},{0,1}}, //y
{{0,1},{-1,1},{1,1}}, //e
{{1,1},{0,1},{1,0}}, //q
{{1,0},{1,-1},{1,1}}, //s
{{1,-1},{0,-1},{1,0}}, //j
{{0,-1},{-1,-1},{1,-1}}, //w
{{-1,-1},{0,-1},{-1,0}}//v
};
char chooseDir(int x, int y)
{
if(x==0 && y==-1)
return 'W';
if(x==-1 && y==-1)
return 'V';
if(x==-1 && y==0)
return 'N';
if(x==-1 && y==1)
return 'Y';
if(x==0 && y==1)
return 'E';
if(x==1 && y==1)
return 'Q';
if(x==1 && y==0)
return 'S';
if(x==1 && y==-1)
return 'J';
}
void print()
{
int i, j;
for (i=0; i<n; ++i)
{
for (j=0; j<m; ++j)
{
printf("%c",a[i][j]);
}
printf(" ");
}
}
int main()
{
int i, j;
int x, y;
char dir;
bool flag = false;
queue<Node> mq;
Node st, t, tt;
while (scanf("%d%d",&n, &m) != EOF)
{
if(!flag)
flag = true;
else
printf(" ");
getchar();
for (i=0; i<n; ++i)
{
for (j=0; j<m; ++j)
{
scanf("%c",&a[i][j]);
}
getchar();
}
// print();
scanf("%d %d %c",&x, &y, &dir);
st.x = --x, st.y = --y, st.c = dir;
a[x][y] = dir;
mq.push(st);
while (!mq.empty())
{
t = mq.front();
mq.pop();
//a[t.x][t.y] = t.c;
int index = -1;
if(t.c == 'N')
index = 0;
if(t.c == 'Y')
index = 1;
if(t.c == 'E')
index = 2;
if(t.c == 'Q')
index = 3;
if(t.c == 'S')
index = 4;
if(t.c == 'J')
index = 5;
if(t.c == 'W')
index = 6;
if(t.c == 'V')
index = 7;
int xx, yy;
for (int i=0; i<3; ++i)
{
xx = t.x + d[index][i][0];
yy = t.y + d[index][i][1];
if(xx>=0&&xx<n && yy>=0&&yy<m)
{
if(a[xx][yy]=='X')
{
tt.x = xx;
tt.y = yy;
tt.c = chooseDir(d[index][i][0], d[index][i][1]);
a[xx][yy] = chooseDir(d[index][i][0], d[index][i][1]);
mq.push(tt);
}
}
}
}
print();
}
return 0;
}
#include <string>
#include <queue>
using namespace std;
typedef struct
{
int x, y;
char c;
}Node;
int m, n;
char a[501][501];
int d[8][3][2] = {
{{-1,0},{-1,-1},{-1,1}},//n
{{-1,1},{-1,0},{0,1}}, //y
{{0,1},{-1,1},{1,1}}, //e
{{1,1},{0,1},{1,0}}, //q
{{1,0},{1,-1},{1,1}}, //s
{{1,-1},{0,-1},{1,0}}, //j
{{0,-1},{-1,-1},{1,-1}}, //w
{{-1,-1},{0,-1},{-1,0}}//v
};
char chooseDir(int x, int y)
{
if(x==0 && y==-1)
return 'W';
if(x==-1 && y==-1)
return 'V';
if(x==-1 && y==0)
return 'N';
if(x==-1 && y==1)
return 'Y';
if(x==0 && y==1)
return 'E';
if(x==1 && y==1)
return 'Q';
if(x==1 && y==0)
return 'S';
if(x==1 && y==-1)
return 'J';
}
void print()
{
int i, j;
for (i=0; i<n; ++i)
{
for (j=0; j<m; ++j)
{
printf("%c",a[i][j]);
}
printf(" ");
}
}
int main()
{
int i, j;
int x, y;
char dir;
bool flag = false;
queue<Node> mq;
Node st, t, tt;
while (scanf("%d%d",&n, &m) != EOF)
{
if(!flag)
flag = true;
else
printf(" ");
getchar();
for (i=0; i<n; ++i)
{
for (j=0; j<m; ++j)
{
scanf("%c",&a[i][j]);
}
getchar();
}
// print();
scanf("%d %d %c",&x, &y, &dir);
st.x = --x, st.y = --y, st.c = dir;
a[x][y] = dir;
mq.push(st);
while (!mq.empty())
{
t = mq.front();
mq.pop();
//a[t.x][t.y] = t.c;
int index = -1;
if(t.c == 'N')
index = 0;
if(t.c == 'Y')
index = 1;
if(t.c == 'E')
index = 2;
if(t.c == 'Q')
index = 3;
if(t.c == 'S')
index = 4;
if(t.c == 'J')
index = 5;
if(t.c == 'W')
index = 6;
if(t.c == 'V')
index = 7;
int xx, yy;
for (int i=0; i<3; ++i)
{
xx = t.x + d[index][i][0];
yy = t.y + d[index][i][1];
if(xx>=0&&xx<n && yy>=0&&yy<m)
{
if(a[xx][yy]=='X')
{
tt.x = xx;
tt.y = yy;
tt.c = chooseDir(d[index][i][0], d[index][i][1]);
a[xx][yy] = chooseDir(d[index][i][0], d[index][i][1]);
mq.push(tt);
}
}
}
}
print();
}
return 0;
}
- zju 2529 DomiNo Grid
- zju 1298 Domino Effect
- ZOJ 2925 DomiNo Grid
- DomiNo Grid做题记录
- 结合Domino打造全功能的Grid
- ZOJ2925 DomiNo Grid(广搜)
- zoj zju 2994 Tiling a Grid With Dominoes 状压dp
- domino
- Domino
- (ZJU-2006复试)-ZOJ-2529-A+B in Hogwarts
- zju 1394
- ZJU 1002
- zju 1091
- zju 1025
- zju 2870
- ZJU-1042
- ZJU-1074
- ZJU-1070
- auto_ptr中auto_ptr_ref的作用
- Comet
- 必须掌握的八个DOS命令
- 时刻拓展
- 在青鸟的第一次竞聘
- zju 2529 DomiNo Grid
- Windows XP SP3 RTM 简体中文版!!!
- 如何删除数据库中重复纪录
- Perl script for IE automation
- 我遇到的一个BUG(一)
- 转一篇李承鹏的博文“CNN患了口蹄疫吗”,个人认为很不错
- 微软的面试题及答案
- 抗美援朝:我军在朝鲜战场上歼敌最多的部队
- 后阿里巴巴时代:从消费资本化理论“望远镜”中探视——电子商务发展趋势探析之一