ZOJ 3804 YY's Minions
来源:互联网 发布:华为网络在那 编辑:程序博客网 时间:2024/04/28 00:51
ZOJ 3804 YY's Minions
简单的模拟题
初始时 每个点都有两种状态 0 1 然后判断每个点周围八个方向中相邻点的状态 判断状态为1的个数
注意点状态变为X是在每秒钟的末尾 所以要在每秒钟的末尾对状态进行改变
用两个数组对前一秒的状态跟这一秒的状态分别进行存储
#include <cstdio>#include <iostream>#include <cstring>#include <cmath>#include <algorithm>#include <string.h>#include <string>#define eps 1e-8#define op operator#define MOD 10009#define MAXN 100100#define FOR(i,a,b) for(int i=a;i<=b;i++)#define FOV(i,a,b) for(int i=a;i>=b;i--)#define REP(i,a,b) for(int i=a;i<b;i++)#define REV(i,a,b) for(int i=a-1;i>=b;i--)#define MEM(a,x) memset(a,x,sizeof a)#define ll __int64using namespace std;char map[55][55];char map2[55][55];bool vis[55][55];int change[55][55];int dir[8][2]={{-1,-1},{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1}};int main(){//freopen("ceshi.txt","r",stdin); int tc; scanf("%d",&tc); while(tc--) { int n,m,f,k; scanf("%d%d%d%d\n",&n,&m,&f,&k); for(int i=0;i<n;i++) { scanf("%s",map[i]); strcpy(map2[i],map[i]); } MEM(vis,0); for(int i=0;i<n;i++) for(int j=0;j<m;j++) change[i][j]=f+1; int t,x,y; for(int i=0;i<k;i++) { scanf("%d%d%d",&t,&x,&y); change[x-1][y-1]=t; } for(int i=1;i<=f;i++) { for(int j=0;j<n;j++) { for(int k=0;k<m;k++) { int num=0; if(map[j][k]=='X') { map2[j][k]='X'; continue; } for(int x=0;x<8;x++) { if((j+dir[x][0])<0||(j+dir[x][0])>=n||(k+dir[x][1])<0||(k+dir[x][1])>=m) continue; char c=map[j+dir[x][0]][k+dir[x][1]]; if(c=='1') num++; } if(map[j][k]=='0') { if(num==3) map2[j][k]='1'; else map2[j][k]=map[j][k]; } else { if(num!=2&&num!=3) map2[j][k]='0'; else map2[j][k]=map[j][k]; } } } for(int j=0;j<n;j++) { strcpy(map[j],map2[j]); for(int k=0;k<m;k++) { if(i==(change[j][k])) { map[j][k]='X'; } } }// cout<<"ii "<<i<<endl;// for(int y=0;y<n;y++)// printf("%s\n",map[y]); }//时间// puts(""); for(int i=0;i<n;i++) printf("%s\n",map[i]); } return 0;}
0 0
- ZOJ 3804 YY's Minions
- ZOJ 3804 YY's Minions
- ZOJ 3804 YY's Minions
- YY's Minions - ZOJ 3804 搜索
- ZOJ 3804 YY's Minions(模拟)
- ZOJ - 3804 YY's Minions(模拟)
- ZOJ 3804 YY's Minions(模拟)
- ZOJ-3804---YY's Minions (模拟)
- ZOJ 3804 YY's Minions(简单模拟)
- ZOJ 3804 YY's Minions(搜索+模拟)
- zoj 3804 YY's Minions (ZOJ Monthly, August 2014 - G)
- ZOJ3804:YY's Minions(模拟)
- 组队赛#1 解题总结 ZOJ 3803 YY's Minions (DFS搜索+模拟)
- ZOJ3804_YY's Minions 模拟
- HDU3833:YY's new problem
- HDU YY's new problem
- zoj 3041 City Selection yy的题
- HDU/HDOJ 3833 YY's new problem
- response.getWriter().write()向前台打印信息乱码问题解决
- Win32串口通信API函数
- 白话机器学习算法(二十二)Adaboost
- 黑马程序员—(iOS开发)Object-C概述及面向对象---(八)
- logo设计-中文设计
- ZOJ 3804 YY's Minions
- 不错的c++ 博客
- 关于垂直切分Vertical Sharding的粒度
- Android 混淆代码总结
- 关于meta标签(力求“大全”)
- C# 委托 事件 学习 以及 小DEMO
- ls -l 文件类型
- 图像处理中几个常用函数(Opencv实现)
- 在 Android 中调用二进制可执行程序(native executable )