zl程序教程

您现在的位置是:首页 >  其他

当前栏目

ZOJ 3804 YY's Minions (简单模拟)

模拟 简单 &# 39 zoj yy
2023-09-14 08:57:55 时间
题意:一个矩阵中有 n*m个宠物,每一个宠物都有一个状态, 1醒着的,0睡着的 X离开的!如果这个宠物(醒着的)的周围醒着的个数 3 || 2它就会睡着, 如果这个宠物(睡着的)的周围醒着的个数==3就会醒来! 每一分钟都会有变换一个状态! 其中会有些宠物会在给定的时间内离开! #include iostream #include cstring #include cstdio #include algorithm using namespace std; int n, m, f, k; char statu[55][55]; int dir[8][2]={1, 0, 0, 1, 0, -1, -1, 0, 1, 1, -1, -1, 1, -1, -1, 1}; int cnt[55][55];//记录[i][j] 周围minions 醒着 的个数 int leave[55][55]; int main(){ int t; scanf("%d", while(t--){ memset(leave, 0, sizeof(leave)); scanf("%d%d%d%d", n, m, f, for(int i=1; i ++i) scanf("%s", statu[i]+1); while(k--){ int u, v, z; scanf("%d%d%d", z, u, //[u][v]这个宠物在z时间之后离开 leave[u][v]=z; memset(cnt, 0, sizeof(cnt)); for(int tt=1; tt ++tt){ for(int i=1; i ++i) for(int j=1; j ++j){ for(int k=0; k ++k){ int x=i+dir[k][1]; int y=j+dir[k][0]; if(x 1 || y 1 || x n || y m) continue; if(statu[x][y]==1) ++cnt[i][j]; for(int i=1; i ++i) for(int j=1; j ++j){ if(cnt[i][j]==3 statu[i][j]==0) statu[i][j]=1; else if((cnt[i][j] 2 || cnt[i][j] 3) statu[i][j]==1) statu[i][j]=0; if(leave[i][j]==tt) statu[i][j]=X;//该宠物到达时间后就会离开 cnt[i][j]=0; for(int i=1; i ++i) printf("%s\n", statu[i]+1); return 0; }
洛谷 P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…【字符串+模拟】 P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He… 众所周知,在每一个彗星后都有一只UFO。这些UFO时常来收集地球上的忠诚支持者。不幸的是,他们的飞碟每次出行都只能带上一组支持者。
HDU 1711 Number Sequence(KMP裸题,板子题,有坑点) Number Sequence Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 27028    Accepted Submission...