HDU-4527 小明系列故事——玩转十滴水 模拟

题意:就是平时玩的十滴水游戏,游戏者拥有一定的水滴,能够滴在某些位置,如果一个点上的体积超过了4就会爆炸,向四周传递一个小水滴。该题就是要求模拟这个过程。

分析:这里有一个问题就是不能够使用递归来处理这个过程,因为水滴拥有速度,如果是递归调用的话,那么可能本来应该同时到达某点的水滴变成不同时间到达了。处理该题使用了两个队列,分别模拟当前时刻,和下一时刻,每次从当前时刻取出所有的水滴,再视情况处理加入到下一时刻的队列中。有个地方要注意就是同时到达某一点的水滴加上原来的水滴超过了5那么视作和5等效。

#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;int mp[10][10]; 
int m;
struct Node {int x, y, d;Node() {}Node(int _x, int _y, int _d) : x(_x), y(_y), d(_d) {}
};
queue<Node>q[2];int dir[4][2] = {0, 1, 0, -1, 1, 0, -1, 0};bool judge(int x, int y) {if (x < 1 || x > 6 || y < 1 || y > 6) return false;else return true;
}void go(int x, int y) {if (mp[x][y] < 4) {mp[x][y]++;return;}int cur = 0, nxt = 1, xx, yy;mp[x][y] = 0;for (int i = 0; i < 4; ++i) {xx = x+dir[i][0], yy = y+dir[i][1];if (judge(xx, yy)) {q[cur].push(Node(xx, yy, i));}}Node tmp;while (!q[cur].empty()) {while (!q[cur].empty()) {tmp = q[cur].front();q[cur].pop();if (mp[tmp.x][tmp.y] == 0) {if (judge(xx=tmp.x+dir[tmp.d][0], yy=tmp.y+dir[tmp.d][1])) {q[nxt].push(Node(xx, yy, tmp.d));}} else {mp[tmp.x][tmp.y]++;}}for (int i = 1; i <= 6; ++i) {for (int j = 1; j <= 6; ++j) {if (mp[i][j] >= 5) {mp[i][j] = 0;for (int k = 0; k < 4; ++k) {xx = i + dir[k][0], yy = j + dir[k][1];if (judge(xx, yy)) {q[nxt].push(Node(xx, yy, k));}}}}}swap(cur, nxt);}
}void print() {for (int i = 1; i <= 6; ++i) {for (int j = 1; j <= 6; ++j) {printf(j == 6 ? "%d\n" : "%d ", mp[i][j]);}}
}int main() {while (scanf("%d", &mp[1][1]) != EOF) {for (int i = 2; i <= 6; ++i) {scanf("%d", &mp[1][i]);}for (int i = 2; i <= 6; ++i) {for (int j = 1; j <= 6; ++j) {scanf("%d", &mp[i][j]);}}scanf("%d", &m);int x, y;while (m--) {scanf("%d %d", &x, &y);go(x, y);} print();puts("");}return 0;
}

 

转载于:https://www.cnblogs.com/Lyush/p/3413367.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360257.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win8改win7 教程

新入手的WIN8怎么改成WIN7呢&#xff1f;下面以戴尔Dell V3560 win8换win7系统为例说明&#xff1a; win8改win7本文转自http://jingyan.baidu.com/article/ed2a5d1f2a97ee09f6be17e2.html 第一步&#xff1a;开机过程中不断按F2进入到BIOS&#xff0c;更改bios设置&#xff0c…

7 centos 查看程序文件数量_解析CentOS 7中系统文件与目录管理

LINUXLinux操作系统解析CentOS 7中系统文件与目录管理Linux目录结构Linux目录结构是树形的目录结构根目录所有分区、目录、文件等的位置起点整个树形目录结构中&#xff0c;使用独立的一个“/”表示常见的子目录目录目录名称目录目录名称/root管理员家目录/bin所有用户可执行命…

IE浏览器模式设置

文件兼容性用于定义让IE如何编译你的网页。此文件解释文件兼容性&#xff0c;如何指定你网站的文件兼容性模式以及如何判断一个网页该使用的文件模式。 前言 为了帮助确保你的网页在所有未来的IE版本都有一致的外观&#xff0c;IE8引入了文件兼容性。在IE6中引入一个增设的兼容…

mysql存储过程套嵌_mysql存储过程套嵌

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…

拆卸invokedynamic

许多Java开发人员认为JDK的第七版有些令人失望。 从表面上看&#xff0c;仅少数语言和库扩展使它成为了发行版&#xff0c;即Project Coin和NIO2 。 但在幕后&#xff0c;该平台的第七个版本对JVM类型系统进行了最大的扩展&#xff0c;这是它最初发布后引入的。 添加invokedyna…

CRON

http://blog.csdn.net/tianlesoftware/article/details/5315039 1. 同时修改文件的修改时间和访问时间 touch -d "2010-05-31 08:10:30" test.doc 2. 只修改文件的修改时间 touch -m -d "2010-05-31 08:10:30" test.doc 3. 只修改文件的访问时间 touch -a …

mysql innodb_file_format_Innodb表压缩过程中遇到的坑(innodb_file_format)

对于越来越多的数据&#xff0c;数据库的容量越来越大&#xff0c;压缩也就越来越常见了。在我的实际工作中进行过多次压缩工作&#xff0c;也遇到多次问题&#xff0c;在此和大家分享一下。首先&#xff0c;我们先说说怎么使用innodb的压缩.第一&#xff0c;mysql的版本需要大…

java内存泄漏和内存溢出_Java和内存泄漏

java内存泄漏和内存溢出总览 术语“内存泄漏”在Java中的使用方式不同于在其他语言中使用的方式。 通用术语中的“内存泄漏”是什么意思&#xff0c;在Java中如何使用&#xff1f; 维基百科的定义 当计算机程序消耗内存但无法将其释放回操作系统时&#xff0c;就会发生计算机科…

JSP内置对象之WEB安全性及config对象

一、WEB-INF的安全性是最高的。 在Java EE的标准中&#xff0c;Web目录中的WEB-INF是必须存在的&#xff0c;而且此文件夹的安全性是最高的&#xff0c;在各个程序的开发中&#xff0c;基本上都将一些配置信息保存在此文件夹中。在定义WEB-INF目录时一定要注意大小写的问题&…

一行中的Java 8 Lambda

如果您了解这一行&#xff0c;或者更好的是仍然可以编写此代码&#xff0c;则可以说您已经了解了Java 8 Lambda的本质。 当然&#xff0c;它们可以与集合一起使用。 我在Peter Lawrey最近的一次演讲中发现了这一点 。 &#xff08;有空余时间绝对值得观看整个演示文稿。&#…

mysql事务的重复性读_Mysql下InnoDB的可重复读级别的事务测试

Mysql下InnoDB的可重复读的事务测试### 背景&#xff1a;* mysql版本&#xff1a;Server version: 5.1.71* 操作系统&#xff1a;CentOS 6.5 X64* 事务隔离级别&#xff1a;不可重复读### 实验前的准备&#xff1a;mysql> use test;mysql> create table test_table(id in…

python动态绘图并保留之前绘图_[转]基于Python实现matplotlib中动态更新图片(交互式绘图)...

最近在研究动态障碍物避障算法&#xff0c;在Python语言进行算法仿真时需要实时显示障碍物和运动物的当前位置和轨迹&#xff0c;利用Anaconda的Python打包集合&#xff0c;在Spyder中使用Python3.5语言和matplotlib实现路径的动态显示和交互式绘图(和Matlab功能类似)。Anacond…

一步一步学Silverlight 2系列(25):综合实例之Live Search

概述 Silverlight 2 Beta 1版本发布了&#xff0c;无论从Runtime还是Tools都给我们带来了很多的惊喜&#xff0c;如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython&#xff0c;对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlig…

gateway中的局部过滤器_Spring Cloud Gateway中的过滤器工厂:重试过滤器

Spring Cloud Gateway基于Spring Boot 2&#xff0c;是Spring Cloud的全新项目&#xff0c;该项目提供了一个构建在Spring 生态之上的API网关。本文基于的Spring Cloud版本为Finchley M9&#xff0c;Spring Cloud Gateway对应的版本为2.0.0.RC1。Spring Cloud Gateway入门一文介…

MySql命令行基本操作

启动mysql服务&#xff1a; net start mysql关闭mysql服务&#xff1a; net stop mysql命令行登陆mysql&#xff1a;mysql -h localhost -u root -p admin 命令行登陆mysql&#xff1a;mysql -uroot -padmin 退出mysql控制台&#xff1a;quit或者exit查看mysql控制台当前信息&a…

mysql 5.7 启动脚本_MySQL数据库 5.7 启动脚本

本文主要向大家介绍了MySQL数据库 5.7 启动脚本&#xff0c;通过具体的内容向大家展现&#xff0c;希望对大家学习MySQL数据库有所帮助。最近这段时间&#xff0c;在看mysql&#xff0c;安装了&#xff0c;也应用过&#xff0c;对于生产环境中&#xff0c;一般都选择使用source…

cocos2d-x for android配置 运行 Sample on Linux OS

1.从http://www.cocos2d-x.org/download下载稳定版 比如cocos2d-x-2.2 2.解压cocos2d-x-2.2.zip,比如本文将其解压到 /opt 目录下 3.运行 android-buildsetup.sh,运行之前需要先设置3个环境变量,如将以下变量写到文件 /etc/profile中 export ANDROID_SDK_ROOT/opt/android-sdk-…

转变馆藏

您是否曾经想替换过HashSet或HashMap使用的equals和hashCode方法&#xff1f; 或者有一个List的一些元素类型伪装成的List相关类型的&#xff1f; 转换集合使这成为可能&#xff0c;并且本文将展示如何实现。 总览 转换集合是LibFX 0.3.0的一项功能&#xff0c;该功能将在今天…

mysql 保证事物完整性_数据库高并发请求,如何保证数据完整性?详解MySQL/InnoDB的加锁...

本文是对MySQL/InnoDB中,乐观锁、悲观锁、共享锁、排它锁、行锁、表锁、死锁概念的理解&#xff0c;这些在面试中也经常遇到&#xff0c;如数据库高并发请求&#xff0c;如何保证数据完整性&#xff1f;今天我查阅资料进行了MySQL/InnoDB中加锁知识点的汇总&#xff0c;这样也会…

Dll学习一_Dll 创建并动态引用窗体且释放窗体Demo

1、新建Dll工程 2、Dll工程全部代码 library SubMain;{ Important note about DLL memory management: ShareMem must be thefirst unit in your librarys USES clause AND your projects (selectProject-View Source) USES clause if your DLL exports any procedures orfunct…