当前位置: 首页 > news >正文

最小堆模拟

lcp71

用并查集把网格拆点、连通、连到超级汇点,统计不与边界连通的封闭区域,算出最大储水量

constexpr int N = 50 * 50 * 4 + 5;

int f[N];

int fd(int x){

if(f[x]!=f[f[x]])

f[x]=fd(f[x]);

return f[x];}

void mg(int x, int y){

x=fd(x);y=fd(y);

if(x!=y)f[x]=y;}

bool co(int x, int y){return fd(x)==fd(y);}

class Solution {

public:

int reservoir(vector<string>& shape) {

int h = shape.size(), w = shape[0].size(), n = h*w*4;

int ans = 0;

iota(f, f+n+1, 0); // n点为超级边界汇点

for (int i = h-1; i >= 0; i--) {

int k = i*w*4;

mg(n, k+1); mg(n, k+w*4-1);

if (i == h-1) for (int j = 0; j < w; k += 4, j++) mg(n, k);

k = i*w*4;

for (int j = 0; j < w; j++, k += 4) {

if (shape[i][j] == '.') mg(k,k+1),mg(k,k+2),mg(k,k+3);

else if (shape[i][j] == 'l') mg(k,k+1),mg(k+3,k+2);

else mg(k, k+3),mg(k+1,k+2);

if (j > 0) mg(k+1, k-1);

}

k = i*w*4;

for (int j = 0; j < w; j++) {

for (int a = 0; a < 4; a++, k++) if (!co(k, n)) ans++;

}

// 检查完本行在实现与上一行之间的连通

k = i*w*4;

if (i > 0) for (int j = 0; j < w; j++, k+=4) mg(k-w*4, k+2);

else for (int j = 0; j < w; j++, k += 4) mg(n, k+2);

}

// 减去封闭的位置

for (int i = 0; i < n; i++) if(!co(i, n)) ans--;

return ans/2;

}

};

lc3296

最小堆,每次选当前耗时最短的工人挖一层山

更新他下次的耗时,直到挖完,最后一次的总耗时就是答案

class Solution {
public:
long long minNumberOfSeconds(int mountainHeight, vector<int>& workerTimes) {
priority_queue<tuple<long long, long long, int>, vector<tuple<long long, long long, int>>, greater<>> pq;
for (int t : workerTimes) {
pq.emplace(t, t, t);
}

long long ans = 0;
while (mountainHeight--) {
// 工作后总用时,当前工作(山高度降低 1)用时,workerTimes[i]
auto [total, cur, base] = pq.top(); pq.pop();
ans = total;

// 最后一个出堆的 total 即为答案
pq.emplace(total + cur + base, cur + base, base);
}
return ans;
}
};

http://www.jsqmd.com/news/475918/

相关文章:

  • 2026别错过!AI论文写作软件 千笔·专业论文写作工具 VS 锐智 AI,专科生专属神器!
  • 两会热议AI安全:从被动防御到主动智能协同
  • MusePublic惊艳案例展示:看AI如何画出故事感时尚人像
  • Kettle8.2过滤记录组件实战:如何用Excel输出实现数据分流(附完整配置截图)
  • Qwen3-0.6B-FP8模型应用:Dify平台集成实战指南
  • 基于 YOLOv11 的智能化遥感图像目标检测
  • 具身智能实战:如何用AIBOX打造你的第一个无人化智能体(附避坑指南)
  • znew 命令超详细使用文档(.Z 转 .gz 格式转换工具)
  • Leather Dress Collection效果展示:Leather Beltbra MicroShorts微短裤皮革拉伸动态模拟
  • Cadence Virtuoso LVS检查全流程:数模混合版图从GDS导入到最终验证
  • Qt 实现三维坐标系的方法
  • CLIP-GmP-ViT-L-14实战落地:医疗影像报告关键词-检查图像语义检索
  • Windows进程通信实战:用CreateFileMapping实现内存共享(附完整代码示例)
  • Gemma-3-12b-it内容创作场景:自媒体图文选题+配图描述生成案例
  • 打开COMSOL时总想着搞点有意思的声场操控,这次咱们来折腾三维相控阵的声镊系统。实验室里那些悬浮的微粒子在声场里跳舞的样子,可比刷短视频带劲多了
  • MacOS新手必看:解决Python Tkinter报错‘No module named msilib’的完整指南
  • ISCTF2021
  • PROJECT MOGFACE辅助C语言学习:代码解释、调试与练习题生成
  • carsim simulink仿真,纯电动汽车Acc 自适应巡航 上层控制器 包括 mpc跟车...
  • 手动改写 vs AI工具降AI:效率和效果到底差多少?
  • 【MySQL开发】
  • 油车和电车标称续航500公里,两者不具可比性,电车有效续航可低至三成
  • Git系列一:git的下载与安装
  • 航空航天Web服务SpringBoot如何实现卫星数据大文件夹的秒传断点续传?
  • AIGlasses_for_navigation 高级教程:利用 ComfyUI 构建可视化导航工作流
  • AI 辅助开发实战:基于 Spring Boot 的 Java 电商系统毕设架构与提效指南
  • GLM-4-9B-Chat-1M实战案例:跨境电商产品说明书多语言自动校验与合规提示
  • 5分钟部署Qwen-Image-Edit-2509:体验用自然语言指令修改图片的乐趣
  • MedGemma Medical Vision Lab实测效果分享:GPU显存仅需16GB完成4B参数多模态推理
  • 探索AI辅助开发:用claude code在快马平台进行智能代码审查与优化