1 /*
 2    题意:一个矩阵中有 n*m个宠物,每一个宠物都有一个状态, 1醒着的,0睡着的
 3    X离开的!如果这个宠物(醒着的)的周围醒着的个数>3 || <2它就会睡着,
 4    如果这个宠物(睡着的)的周围醒着的个数==3就会醒来!
 5    每一分钟都会有变换一个状态!
 6    其中会有些宠物会在给定的时间内离开!
 7 */
 8 #include<iostream>
 9 #include<cstring>
10 #include<cstdio>
11 #include<algorithm>
12 using namespace std;
13
14 int n, m, f, k;
15
16 char statu[55][55];
17 int dir[8][2]={1, 0, 0, 1, 0, -1, -1, 0, 1, 1, -1, -1, 1, -1, -1, 1};
18 int cnt[55][55];//记录[i][j] 周围minions 醒着 的个数
19
20 int leave[55][55];
21
22 int main(){
23    int t;
24    scanf("%d", &t);
25    while(t--){
26          memset(leave, 0, sizeof(leave));
27       scanf("%d%d%d%d", &n, &m, &f, &k);
28       for(int i=1; i<=n; ++i)
29          scanf("%s", statu[i]+1);
30       while(k--){
31           int u, v, z;
32           scanf("%d%d%d", &z, &u, &v);//[u][v]这个宠物在z时间之后离开
33           leave[u][v]=z;
34       }
35       memset(cnt, 0, sizeof(cnt));
36       for(int tt=1; tt<=f; ++tt){
37           for(int i=1; i<=n; ++i)
38              for(int j=1; j<=m; ++j){
39                  for(int k=0; k<8; ++k){
40                     int x=i+dir[k][1];
41                     int y=j+dir[k][0];
42                     if(x<1 || y<1 || x>n || y>m) continue;
43                     if(statu[x][y]=='1')  ++cnt[i][j];
44                  }
45              }
46           for(int i=1; i<=n; ++i)
47              for(int j=1; j<=m; ++j){
48                 if(cnt[i][j]==3 && statu[i][j]=='0')
49                     statu[i][j]='1';
50                 else if((cnt[i][j]<2 || cnt[i][j]>3) && statu[i][j]=='1')
51                     statu[i][j]='0';
52
53                 if(leave[i][j]==tt)  statu[i][j]='X';//该宠物到达时间后就会离开
54                 cnt[i][j]=0;
55              }
56       }
57       for(int i=1; i<=n; ++i)
58          printf("%s\n", statu[i]+1);
59    }
60    return  0;
61 } 

转载于:https://www.cnblogs.com/hujunzheng/p/3933902.html

ZOJ 3804 YY's Minions (简单模拟)相关推荐

  1. tyvj 1027 木瓜地 简单模拟

    P1027 木瓜地 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 USACO OCT09 4TH 描述 Bessie不小心游荡出Farmer John的田地 ...

  2. es6 迭代器(遍历器)Iterator 自定义遍历器 lterator/简单模拟values方法 for of运行机制 Array/Set/Map默认迭代器接口 对象设置迭代器

    文章目录 迭代器 Iterator 用处 (需要自定义遍历数据的时候) 自定义 遍历器 lterator 简单模拟values方法 Array Set Map 默认迭代器接口 entries valu ...

  3. IoC容器总结与简单模拟

    IoC容器总结与简单模拟 当一个组件需要外部资源时,最直接也最明智的方法是执行查找,这种行为称为主动查找.但这种查找存在一个缺点--组件需要知道如何获得资源.那么它的解决方案是什么呢?请看下文. AD ...

  4. 使用动态代理简单模拟一下spring的事务管理

    按照平时写代码的习惯,我们会定义一个service接口 package com.proxy.test; public interface UserService {public void sayHel ...

  5. 7-18 银行业务队列简单模拟 (25 分)

    7-18 银行业务队列简单模拟 (25 分) 设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 -- 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客.给定到达 ...

  6. Jmeter简介以及简单模拟性能测试

    1.Jemter简介 1.我们为什么使用Jmeter 开源,免费,基于Java编写,可集成到其他系统可拓展各个功能插件 支持接口测试, 压力(负载和压力)测试等多种功能,支持录制回放, 入门简单相较于 ...

  7. JavaWeb学习总结(四十九)——简单模拟Sping MVC

    在Spring MVC中,将一个普通的java类标注上Controller注解之后,再将类中的方法使用RequestMapping注解标注,那么这个普通的java类就够处理Web请求,示例代码如下: ...

  8. 银行业务队列简单模拟 (25 分)c语言c++

    7-2 银行业务队列简单模拟 (25 分) 设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 -- 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客.给定到达银 ...

  9. NYOJ 题目77 开灯问题(简单模拟)

    开灯问题 时间限制:3000 ms  |            内存限制:65535 KB 难度:1 描述 有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2 的倍数的开关(这些灯 ...

最新文章

  1. Python3 流程控制语句
  2. Laravel - Auth验证流程以及guard守卫和自定义驱动driver驱动,使用web-token验证
  3. 洛谷P1659 养猪
  4. Windows: 在系统启动时运行程序、定时计划任务、定时关机
  5. 知识图谱论文阅读(十八)【KDD2019】AKUPM: Attention-Enhanced Knowledge-Aware User Preference Model for Recommend
  6. spring boot——MockMvc的用法
  7. discuz! X3 更改域名全程记录 (修改域名的方法)
  8. 【JAVA 第三章 流程控制语句】课后习题 找零钱
  9. thttpd源码解析 定时器模块
  10. java socket是什么_Java网络编程-JavaSocket编程是什么呢?
  11. java过滤器Filter实现敏感词汇过滤
  12. 如何彻底卸载Anaconda?
  13. Mac制作映像(dmg)文件详细步骤
  14. ERROR: Invalid requirement: ‘opencv-p-thon\xa0\xa0-i‘
  15. 用了很多群控与云控,微信还是慢慢死掉了
  16. KVM虚拟化技术实践
  17. word2016 图片去底灰_Word2016中为图片去除背景的方法
  18. 头条白板面试_我收到的最佳白板面试建议
  19. deepin,真好用-01-简介及安装
  20. xml转json以及调用websrvices传参

热门文章

  1. linux mysql 开启异步io_Linux 异步IO介绍
  2. mysql 默认时间字段 1067,mysql替datetime类型字段设置默认值default
  3. jre for mac 删除_在 Mac 的 Docker Desktop 中运行 K8s
  4. ETL异构数据源Datax_工具部署_02
  5. mybatis批量插入10万条数据的优化过程
  6. 一分钟在Linux 环境 搭建 SFTP服务器
  7. 使用FTP下载文件connect.retrieveFileStream(filename) 获取不到InputStream流,返回null的问题
  8. Maven配置、使用
  9. 前期绑定 php,关于php:后期静态绑定在PHP中的使用
  10. python treeview文本自动换行显示_在tkinter.ttk.Treeview列中设置文本格式