ZOJ 3804 YY's Minions (简单模拟)
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 (简单模拟)相关推荐
- tyvj 1027 木瓜地 简单模拟
P1027 木瓜地 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 USACO OCT09 4TH 描述 Bessie不小心游荡出Farmer John的田地 ...
- es6 迭代器(遍历器)Iterator 自定义遍历器 lterator/简单模拟values方法 for of运行机制 Array/Set/Map默认迭代器接口 对象设置迭代器
文章目录 迭代器 Iterator 用处 (需要自定义遍历数据的时候) 自定义 遍历器 lterator 简单模拟values方法 Array Set Map 默认迭代器接口 entries valu ...
- IoC容器总结与简单模拟
IoC容器总结与简单模拟 当一个组件需要外部资源时,最直接也最明智的方法是执行查找,这种行为称为主动查找.但这种查找存在一个缺点--组件需要知道如何获得资源.那么它的解决方案是什么呢?请看下文. AD ...
- 使用动态代理简单模拟一下spring的事务管理
按照平时写代码的习惯,我们会定义一个service接口 package com.proxy.test; public interface UserService {public void sayHel ...
- 7-18 银行业务队列简单模拟 (25 分)
7-18 银行业务队列简单模拟 (25 分) 设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 -- 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客.给定到达 ...
- Jmeter简介以及简单模拟性能测试
1.Jemter简介 1.我们为什么使用Jmeter 开源,免费,基于Java编写,可集成到其他系统可拓展各个功能插件 支持接口测试, 压力(负载和压力)测试等多种功能,支持录制回放, 入门简单相较于 ...
- JavaWeb学习总结(四十九)——简单模拟Sping MVC
在Spring MVC中,将一个普通的java类标注上Controller注解之后,再将类中的方法使用RequestMapping注解标注,那么这个普通的java类就够处理Web请求,示例代码如下: ...
- 银行业务队列简单模拟 (25 分)c语言c++
7-2 银行业务队列简单模拟 (25 分) 设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 -- 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客.给定到达银 ...
- NYOJ 题目77 开灯问题(简单模拟)
开灯问题 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2 的倍数的开关(这些灯 ...
最新文章
- Python3 流程控制语句
- Laravel - Auth验证流程以及guard守卫和自定义驱动driver驱动,使用web-token验证
- 洛谷P1659 养猪
- Windows: 在系统启动时运行程序、定时计划任务、定时关机
- 知识图谱论文阅读(十八)【KDD2019】AKUPM: Attention-Enhanced Knowledge-Aware User Preference Model for Recommend
- spring boot——MockMvc的用法
- discuz! X3 更改域名全程记录 (修改域名的方法)
- 【JAVA 第三章 流程控制语句】课后习题 找零钱
- thttpd源码解析 定时器模块
- java socket是什么_Java网络编程-JavaSocket编程是什么呢?
- java过滤器Filter实现敏感词汇过滤
- 如何彻底卸载Anaconda?
- Mac制作映像(dmg)文件详细步骤
- ERROR: Invalid requirement: ‘opencv-p-thon\xa0\xa0-i‘
- 用了很多群控与云控,微信还是慢慢死掉了
- KVM虚拟化技术实践
- word2016 图片去底灰_Word2016中为图片去除背景的方法
- 头条白板面试_我收到的最佳白板面试建议
- deepin,真好用-01-简介及安装
- xml转json以及调用websrvices传参
热门文章
- linux mysql 开启异步io_Linux 异步IO介绍
- mysql 默认时间字段 1067,mysql替datetime类型字段设置默认值default
- jre for mac 删除_在 Mac 的 Docker Desktop 中运行 K8s
- ETL异构数据源Datax_工具部署_02
- mybatis批量插入10万条数据的优化过程
- 一分钟在Linux 环境 搭建 SFTP服务器
- 使用FTP下载文件connect.retrieveFileStream(filename) 获取不到InputStream流,返回null的问题
- Maven配置、使用
- 前期绑定 php,关于php:后期静态绑定在PHP中的使用
- python treeview文本自动换行显示_在tkinter.ttk.Treeview列中设置文本格式