HDU5336-XYZ and Drops-模拟
模拟水珠那个游戏。
小水珠超过边界会消失。
会有两个水珠同时到达一个size=4大水珠的情况。要移动完统一爆炸
#include <vector>
#include <cstdio>
#include <cstring>
#include <algorithm> //using namespace std; const int maxn = +;
int r,c,n,T; int dx[] = {,,,-};
int dy[] = {,-,,}; struct dp
{
int x,y;
int dir;
bool die;
dp(int _x,int _y,int _dir):x(_x),y(_y),dir(_dir){
die = false;
}
bool out()
{
return (x < || x > r || y < || y > c);
}
void kill()
{
die = true;
}
void move()
{
x += dx[dir];
y += dy[dir];
if(out())
{
kill();
return ;
}
}
bool alive()
{
return !die;
}
};
std::vector <dp> drops; struct wdp
{
int x,y;
int siz;
int t;
int id;
void display()
{
printf("%d %d\n",siz==-? :,siz==-?t:siz);
}
void add(int tim)
{
if(siz == -) return ;
siz += ;
}
void split(int tim)
{
if(siz > )
{
siz = -;
t = tim;
//printf("time:%d %d crack\n",tim,id);
for(int i=;i<;i++)
{
drops.push_back(dp(x,y,i));
}
}
}
bool alive()
{
return siz != -;
}
}waterdrop[maxn]; bool merge(dp &a,wdp &b)
{
return (a.x == b.x && a.y == b.y);
} void roll(int tim)
{
int cnt = drops.size();
for(int i=;i<cnt;i++) if(drops[i].alive())
{
drops[i].move();
if(!drops[i].alive()) continue;
//printf("drops: [%d,%d]\n",drops[i].x,drops[i].y);
for(int j=;j<n;j++) if(waterdrop[j].alive())
{
if(merge(drops[i],waterdrop[j]))
{
waterdrop[j].add(tim);
drops[i].kill();
break ;
}
}
}
for(int i=;i<n;i++) waterdrop[i].split(tim);
} int main()
{
//freopen("input.txt","r",stdin);
while(~scanf("%d%d%d%d",&r,&c,&n,&T))
{
int x,y,siz;
drops.clear();
for(int i=;i<n;i++)
{
scanf("%d%d%d",&x,&y,&siz);
waterdrop[i].x = x;
waterdrop[i].y = y;
waterdrop[i].siz = siz;
waterdrop[i].id = i+;
}
scanf("%d%d",&x,&y);
for(int i=;i<;i++)
{
drops.push_back(dp(x,y,i));
}
for(int i=;i<=T;i++)
{
roll(i);
}
for(int i=;i<n;i++)
{
waterdrop[i].display();
}
}
}
想到了大一刚开始做的那个傻x坦克大战- -当时写一个判断子弹写半天
HDU5336-XYZ and Drops-模拟的更多相关文章
- Hdu 5336 XYZ and Drops (bfs 模拟)
题目链接: Hdu 5336 XYZ and Drops 题目描述: 有一个n*m的格子矩阵,在一些小格子里面可能会有一些水珠,每个小水珠都有一个size.现在呢,游戏开始咯,在一个指定的空的小格子里 ...
- 2015 Multi-University Training Contest 4 hdu 5336 XYZ and Drops
XYZ and Drops Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tot ...
- HDU 5336——XYZ and Drops——————【广搜BFS】
XYZ and Drops Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tot ...
- HDU 5336 XYZ and Drops
Problem Description XYZ is playing an interesting game called "drops". It is played on a r ...
- HDU 5336 XYZ and Drops 2015 Multi-University Training Contest 4 1010
这题的题意是给你一幅图,图里面有水滴.每一个水滴都有质量,然后再给你一个起点,他会在一開始的时候向四周发射4个小水滴,假设小水滴撞上水滴,那么他们会融合,假设质量大于4了,那么就会爆炸,向四周射出质量 ...
- 2015 Multi-University Training Contest 4
1001 Olympiad 签到题1. # include <iostream> # include <cstdio> using namespace std; ]={}; b ...
- NOIP2014酱油记
尘埃落定,来补一下酱油记吧... day-1 晚上老师说有xyz的noip模拟赛,于是果断请假来做(shou)题(nve),题目真是理(S)性(X)愉(B)悦(K),然后就爆零了!感觉noip要爆零滚 ...
- 在PC上测试移动端网站和模拟手机浏览器的5大方
查了很多资料,尝试了大部分方法,下面将这一天的努力总结下分享给大家,也让大家免去看那么多文章,以下介绍的方法,都是本人亲自测试成功的方法,测试环境winxp. 一.Chrome*浏览器 chrome模 ...
- sqlmap --dns-domain模拟实践
因为看到乌云的这一篇文章 http://drop.xbclub.org/static/drops/tips-5283.html 里面的提到的用sqlmap 的--dns-domain 进行dns 注入 ...
- 模拟--poj1835宇航员的故事
这道题委实无语了,刚开始以为是很一般的方位模拟题,懒得看样例直接写的代码,然后敲了好几个switch结果样例居然没出来.. 仔细分析了样例之后才发现原来随着宇航员方位的改变他的左手方向以及头顶方向是跟 ...
随机推荐
- asp接收jquery post 中文乱码问题!
这个问题的解决主要还是通过url编码对中文进行处理,在服务后台代码中,进行url解码处理. 但是问题来了,asp没有解码的内置函数,只有一个编码的内置函数UrlEncode,而用UrlEncode进行 ...
- Node.js Web框架收集
原文地址:http://geek.csdn.net/news/detail/4020 框架列表: http://nodeframework.com/ 与其他很多语言一样,Node.js也有很多Web框 ...
- Log4net配置文件一般配置
配置文件一般配置 <?xml version="1.0"?> <configuration> <configSections> <sect ...
- linux 后台运行进程 fg bg ctrl+z nohup
fg.bg.jobs.&.nohup.ctrl+z.ctrl+c 命令 一.& 加在一个命令的最后,可以把这个命令放到后台执行,如 watch -n 10 sh test.sh &am ...
- 《SQL Server企业级平台管理实践》读书笔记——SQL Server中收缩数据库不好用的原因
数据库管理员有时候需要控制文件的大小,可能选择收缩文件,或者把某些数据文件情况以便从数据库里删除. 这时候我们就要使用到DBCC SHRINKFILE命令,此命令的脚本为: DBCC SHRINKFI ...
- Linux下shell颜色配置
颜色配置涉及以下几个地方(本人常用的):命令提示符,文件及目录名显示,echo -e命令 1.颜色值分为前景色和背景色,颜色码值对应关系如下: Front Back Color 黑 红 绿 黄(棕) ...
- SQL Server 2008 R2——VC++ ADO 操作 参数化查询
==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完 ...
- javascript原型Prototype
在javaScript创建对象一文中提到过:用构造函数创建对象存在一个问题即同一构造函数的不同实例的相同方法是不一样的,所以我们用原型把构造函数中公共的属性和方法提取出来进行封装,达到让所有实例共享的 ...
- 使用DateLocaleConverter和SimpleDateFormat实现字符串转换成日期
使用DateLocaleConverter: public static void change() { String birthday = "1990-12-32"; DateL ...
- 【MVC 4】2.使用 Razor
作者:[美]Adam Freeman 来源:<精通ASP.NET MVC 4> Razor 是微软 MVC3 引入的视图引擎的名称,并在MVC 4 中进行了修订.视图引擎处理 A ...