ZOJ 3804 YY's Minions

2024-06-15 19:48
文章标签 zoj 3804 yy minions

本文主要是介绍ZOJ 3804 YY's Minions,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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;
}


这篇关于ZOJ 3804 YY's Minions的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1064406

相关文章

大数问题 ZOJ Problem Set - 2001 Adding Reversed Numbers

题目:   Time Limit: 2 Seconds       Memory Limit: 65536 KB The Antique Comedians of Malidinesia prefer comedies to tragedies. Unfortunately, most of the ancient plays are tragedies. Therefore t

ZOJ 3798 Abs Problem

ZOJ 3798 Abs Problem  关于绝对值的一个题  题意是从1-N  N个不同的数中  选数 每次选一个数  第一次选的数记为a1  写到纸上记为b1   然后每次选的数ai   bi=|ai-bi-1|  求bn的最小值以及最大值 可以找规律 (1,2特判)  当模4的值等于0或3时  最小值为0  否则为1 n-1模4的值为0或3时   最大值为n  否则为n-1 注意

poj 1459 zoj 1734 Power Network(最大流)

电网 中一些节点  可能会消耗电能  提供电能   节点之间有电线传输电能  传输的电能有上限值 节点中没有 源点和汇点 类型的节点  所以需要我们添加源点汇点  n个节点 从0开始 设源点为n+1  汇点为n+2 源点到每个电站之间添加一条边 权值为该电站能够提供的电能 每个消费者与汇点之间添加一条边 权值为该消费者消费的电能 根据所给的 电线中的起点和重点 添加边 权值为该电线能够

zoj 1919 poj 2337 Catenyms(欧拉路径求解)

zoj 1919 poj 2337  Catenyms 前一个单词的尾字母与后一个单词的第一个字母相同  输出字典序最小的序列 用向量数组e[i]来存储以i开头的字符串  由于要是按字典序输出 所以需要讲字符串排序 f[i][j]数组表示 以第i个字母开头的第j个单词有没有被选取 level记录递归的层数  到达n之后 所有单词被选取 结束 yes标记有木有找到 找到了之后 递归

poj 2396 zoj 1994 Budget(有源汇上下界的可行流)

思路: 无源汇 (附加源汇+最大解决) 有源汇 (附加(T,S)->无源汇) Budget Time Limit: 3000MS Memory Limit: 65536KTotal Submissions: 6237 Accepted: 2367 Special Judge Description We are supposed to make

TOJ 4365 ZOJ 3623 Battle Ships / 完全背包

Battle Ships 时间限制(普通/Java):1000MS/3000MS     运行内存限制:65536KByte 描述 Battle Ships is a new game which is similar toStar Craft. In this game, the enemy builds a defense tower, which has L longe

TOJ 4369 ZOJ 3632 Watermelon Full of Water / 线段树优化DP

Watermelon Full of Water 时间限制(普通/Java):3000MS/9000MS     运行内存限制:65536KByte 描述 Watermelon is very popular in the hot summer. Students in ZJU-ICPC Team also love watermelon very much and they

ZOJ 3696 Alien's Organ / 泊松分布

有遇到 奇葩的 前所未闻的东西 记一下 观察事物平均发生m次的条件下,实际发生x次的概率P(x) p(k)=(y^k) / (k!) * e^(-y) 吊炸天 这种东西做梦都想不到 平均每天生产的λ 个,每天生产不超过n的可能性 代码参考别人的 #include <cstring>#include <cstdio>#include <cmath>int main(){int T

ZOJ 3557 How Many Sets II lucas 定理

插空法 大组合数取余 #include <cstdio>#include <cstring>using namespace std;typedef long long LL;//求整数x和y,使得ax+by=d, 且|x|+|y|最小。其中d=gcd(a,b) void gcd(LL a, LL b, LL& d, LL& x, LL& y){if(!b){d = a;x = 1;

NYOJ-655-光棍的yy-2013年08月21日16:50:16

光棍的yy 时间限制: 1000 ms  |  内存限制: 65535 KB 难度: 2 描述 yy经常遇见一个奇怪的事情,每当他看时间的时候总会看见11:11,这个很纠结啊。 现在给你m个1,你可以把2个1组合成一个2,这样就不是光棍了,问这样的组合有多少种?? 例如(111  可以拆分为 111 12 21  有三种) 输入 第一行输入一个n表示有n个测