当前位置:网站首页>扩散(多源广搜)
扩散(多源广搜)
2022-07-01 06:06:00 【大 聪 明】
小蓝在一张无限大的特殊画布上作画。
这张画布可以看成一个方格图,每个格子可以用一个二维的整数坐标表示。
小蓝在画布上首先点了一下几个点:(0, 0), (2020, 11), (11, 14), (2000, 2000)
只有这几个格子上有黑色,其它位置都是白色的。
每过一分钟,黑色就会扩散一点。具体的,如果一个格子里面是黑色,它就会扩散到上、下、左、右四个相邻的格子中,使得这四个格子也变成黑色(如果原来就是黑色,则还是黑色)。
请问,经过 2020分钟后,画布上有多少个格子是黑色的。
分析:四个点同时扩散,要考虑到重叠的问题,而且越是后面一秒扩散的点越多,开始写的是每个点分别广搜一遍,如果第一个点扩散到了第二个点且已经标记了,到第二个点的时候就不会搜索了,结果也就错了;
所以多源头同时搜索,当有点重叠的时候,先来的源头点说明剩余的时间更多,后续扩散的范围也最大,后来的源头点时间少,扩散范围肯定没有先来的大;
再说一下为什么不用广搜,2020个节点复杂度高,时间长,广搜可以通过空间来节省时间
#include<bits/stdc++.h>
using namespace std;
int ans=4;
int book[9999][9999];
int nex[4][2]={
0,1,0,-1,1,0,-1,0};
struct node
{
int x,y,z;
}l,head;
queue <node> q;
void bfs()
{
while( !q.empty() )
{
head=q.front();
q.pop();
if(head.z>=2020)
continue;
for(int i=0;i<4;i++)
{
int tx=head.x+nex[i][0];
int ty=head.y+nex[i][1];
if(book[tx][ty]==0)
{
book[tx][ty]=1;
ans++;
l.x=tx;
l.y=ty;
l.z=head.z+1;
q.push(l);
}
}
}
}
int main()
{
book[3000][3000]=1;
book[5020][3011]=1;
book[3011][3014]=1;
book[5000][5000]=1;
l.x=3000;
l.y=3000;
l.z=0;
// q.push(l);
q.push({
3000,3000,0});
//这样写也可以,前边已经规定队列为结构体类型
// bfs();
l.x=5020;
l.y=3011;
l.z=0;
q.push(l);
// bfs();
l.x=3011;
l.y=3014;
l.z=0;
q.push(l);
// bfs();
l.x=5000;
l.y=5000;
l.z=0;
q.push(l);
bfs();
printf("%d\n",ans);
}
边栏推荐
- TiDB单机模拟部署生产环境集群(闭坑实践,亲测有效)
- OpenGL ES: (1) OpenGL ES的由来 (转)
- 浏览器端保存数据到本地文件
- 论文学习记录随笔 多标签之GLOCAL
- How to transmit and share 4GB large files remotely in real time?
- 云盘里资料被和谐了,怎么办?
- Code shoe set - mt3114 · interesting balance - explain it with examples
- Why use huluer pie disk instead of U disk?
- 穿越派·派盘 + 思源笔记 = 私人笔记本
- freeswitch拨打分机号
猜你喜欢

QT write custom control - self drawn battery

linux 关闭redis 进程 systemd+

DHT11 温湿度传感器

让厦门灌口镇田头村变“甜头”村的特色农产品之一是

jdbc 数据库操作

FPGA - 7系列 FPGA内部结构之Clocking -01- 时钟架构概述

Make Tiantou village sweet. Is Xianjing taro or cabbage the characteristic agricultural product of Tiantou Village

可动的机械挂钟

Primary application case of Excel DuPont analyzer

【文件系统】如何在ubi之上运行squashfs
随机推荐
LED lighting used in health lighting
穿越派·派盘 + 思源笔记 = 私人笔记本
How to add a gourd pie plate
PLA not pasted on the bed: 6 simple solutions
How to transmit and share 4GB large files remotely in real time?
Freeswitch dial the extension number
TiDB单机模拟部署生产环境集群(闭坑实践,亲测有效)
Infinite horizontal marble game
Fixed height of the first column in El table dynamic header rendering
Ant new village is one of the special agricultural products that make Tiantou village in Guankou Town, Xiamen become Tiantou village
This is the necessary software for college students 𞓜 knowledge management
Using Baidu map to query national subway lines
SystemVerilog学习-06-类的封装
云盘里资料被和谐了,怎么办?
表格中el-tooltip 实现换行展示
Fragment upload and breakpoint resume
C language beginner level - realize the minesweeping game
论文学习记录随笔 多标签之LIFT
Solve the problem of garbled files uploaded by Kirin v10
linux 关闭redis 进程 systemd+