首页 > 其他分享 >【染色时间】

【染色时间】

时间:2024-11-01 23:17:04浏览次数:3  
标签:int 染色 bfs 时间 dx dy push define

题目

代码

#include <bits/stdc++.h>
using namespace std;
#define x first
#define y second
typedef pair<int,int> PII;
const int N = 510;
int dx[] = {0,0,-1,1}, dy[] = {-1,1,0,0};
int d[N][N], w[N][N];
int n, m;
void bfs()
{
  memset(d, 0x3f, sizeof d);
  queue<PII> q;
  q.push({1,1}); d[1][1] = 0;
  while(q.size())
  {
    auto u = q.front(); q.pop();
    for(int i = 0; i < 4; i++)
    {
      int x = u.x + dx[i], y = u.y + dy[i];
      if(x < 1 || y < 1 || x > n || y > m) continue;
      if(d[x][y] > d[u.x][u.y] + w[u.x][u.y])
      {
        q.push({x,y});
        d[x][y] = d[u.x][u.y] + w[u.x][u.y];
      }
    }
  }
}
int main()
{
  cin >> n >> m;
  for(int i = 1; i <= n; i++)
  for(int j = 1; j <= m; j++)
    cin >> w[i][j];
  
  bfs();

  int ans = 0;
  for(int i = 1; i <= n; i++)
  for(int j = 1; j <= m; j++)
    ans = max(ans, d[i][j] + w[i][j]);

  cout << ans;
  return 0;
}

标签:int,染色,bfs,时间,dx,dy,push,define
From: https://blog.csdn.net/m0_73669127/article/details/143441603

相关文章

  • 链表和数组的插入删除时间复杂度都是o(n),为什么说链表效率高
    链表和数组的插入删除时间复杂度都是o(n),链表效率高的原因:1.动态内存分配;2.插入和删除操作的局部性;3.避免数组的扩容和复制;4.无需移动大量数据;5.适用于频繁的随机插入和删除;6.简化数据结构维护。链表的节点可以在运行时动态分配内存,而数组在创建时需要分配固定大小的内存。......
  • 时间序列算法---ARIMA
      现代时间序列分析方法主要有两个不同的方向:一个方向是由外向内的分析视角产生的方法是与确定性因素分解相关的方法;一个方向是由内向外的分析视角产生的方法是时域分析方法。一、确定性因素分析方法  因素分解方法认为所有的序列波动都可以归纳为受到如下四大类因素......
  • 使用批处理,切换电源计划,切换自动休眠时间
    1、打开命令提示符:按Win+R,输入cmd,然后按Enter。2、列出电源计划的GUIDpowercfg/list获取输出结果取下:C:\Users\Administrator>powercfg/list现有电源使用方案(*Active)-----------------------------------电源方案GUID:381b4222-f694-41f0-****-ff5bb260df......
  • 1. 时间复杂度和空间复杂度的计算(1)
    1.什么是时间复杂度和空间复杂度?1.1算法效率**算法效率分析分为两种:第一种是时间效率,第二种是空间效率。**时间效率被称为时间复杂度,而空间效率被称为空间复杂度。时间复杂度主要衡量一个算法的运行速度,空间复杂度主要衡量一个算法所需要的额外空间1.2时间复杂度的......
  • Java 中如何处理日期和时间?_1
    在Java中处理日期和时间可以通过几种核心技术实现,这些技术包括:`java.util.Date`类,`java.util.Calendar`类、`java.text.DateFormat`类,以及Java8引入的新日期和时间API——`java.time`包的类。其中,Java8的新API提供了更为简洁、易读和强大的日期时间处理能力,推荐优先使用。`jav......
  • 线上服务正常运行一段时间后就开始出现STW超过1秒的young gc是怎么回事
    线上服务在一段正常运行后出现STW(Stop-The-World)超过1秒的younggc(垃圾收集)问题可能涉及多个方面的原因:一、内存分配与管理策略;二、GC算法与配置;三、对象生命周期管理;四、系统资源与环境;五、代码质量与优化。在这些方面中,Java虚拟机的内存管理和垃圾收集策略起着决定性的作用,同时......
  • 如何计算电池的放电时间?
    计算电池的放电时间是一项基础但重要的技术工作,它有助于我们更好地评估电池性能,为电子设备的设计和使用提供科学依据。以下是一个详细的计算流程:确定电池的额定容量和负载电流:电池的额定容量通常以安时(Ah)表示,负载电流则是放电时的实际电流。计算10小时率的放电电流:将电池容量除......
  • 通过在 DIM 接入一个外部电容,使得启动时 DIM 端电压缓慢上升,这样 LED 的电流也缓慢上
    AP5165是一款连续电感电流导通模式的降压恒流源,用于驱动一颗或多颗串联LED输入电压范围从6V到30V,输出电流可调,最大可达1.2A。根据不同的输入电压和外部器件,AP5165可以驱动高达数十瓦的LED。AP5165内置功率开关,采用高端电流采样设置LED平均电流,通过DIM引脚可以接受模拟......
  • 为什么 Go 在 GC 时 STW 的时间很短
    Go语言在设计其垃圾回收(GC)机制时,强烈关注减少程序的停顿时间,特别是降低StopTheWorld(STW)的时长。通过采用三色标记法和写屏障技术,Go的GC在扫描和清理阶段减少了STW的时间。同时,运用背景处理和协程并发管理,进一步确保了垃圾回收的高效与流畅,从而在保持内存管理效率的......
  • 项目计划中的时间估算技巧
    在项目计划中,时间估算技巧是至关重要的一环。一般而言,在项目计划中的时间估算可以采用专家判断、类比估算、参数估算、三点估算和决策树分析等技巧。此外,有效的时间管理,包括识别关键路径、微调计划以适应实际情况,以及持续跟踪进度,也十分关键。接下来,我将主要讨论专家判断这一技......