菱形计数与最值问题

news/2024/12/20 12:03:25/文章来源:https://www.cnblogs.com/programmingysx/p/18618989

题面

你有一个边长为 \(n\) 的正六边形。它被划分成了若干个边长为 \(1\) 的小等边三角形。
我们希望通过合并若干对有公共边的三角形,把这个六边形变成若干个边长为 \(1\) 的菱形的划分。对于每对三角形之间,它们合并有一个代价,问最小的总代价是多少。
例如下面的图,最佳划分方案是图中绿色的边作为每个菱形的边界。


这是最值的题面,还有一个题是求方案数的题目,即:求将边长为 \(a,b,c\) 的正六边形分解成若干小菱形的方案数。

转化为三维问题

相当于一个 \(a\times b\) 的网格,每个格子上可以堆至多 \(c\) 个方块,并且每个格子的方块数量不能超过它左边和上面的格子的方块数量。

这样就看起来非常直观了,并且每一种放置方案和每一个菱形的划分或者三角形的合并的方案是一一对应的。比如说我们可以看第一个图,那么他三角形合并的方案就是讲图中所有红线两端的三角形合并到一起:

而题目给的那个图就像是这个的第二行第三个图:

转化为不相交路径问题

将这个问题再转化:从右上角的所有格子往左下角的所有格子对应着走,且路径不相交。



就好像我们的每一个路径直走每个小正方体的上面和前面,而不走他的侧面,显然这种路径的每一种方案和题目所述的合法方案也是一一对应的。
此时如果你要求方案数的话就可以直接 \(LGV\) 引理解决。

本题的解决方案

但是这个题你要求的是一个最小代价。我们考虑建图费用流,把每个三角形当做点,题目给出的代价当做相邻的那两个三角形对应点之间的边权(显然边的容量都是 \(1\))。

我们把这些边分成两类,一类是上下两个三角形之间的边,即图中红色的边,另一类是其他蓝色的边(\(S,T\) 是源点和汇点,他们向六边形一组对边上对应的点连费用是 \(0\) 的边)。
我们假设每个红色边权的菱形都选了(这显然不合法),然后我们往里填一些小正方形,每填一个相当于是破坏了一些竖着的菱形,新添加了一些横着的菱形。
那么我们就可以最开始时把所有红色的边权加到答案里,然后将红色边的边权取负数,蓝色的还是保持正数不变,然后跑 \(n\) 条最小费用的流量,再加上前面所有红色边的边权和就是答案。

注意:跑 \(n\) 条是因为我们要找 \(n\) 条路径。
我们同时还要求有流量的路径不交,由于这个图边的容量都是 \(1\) 所以边肯定的不交的。
而且由于这个图的特殊性,一个点最多向外连三条边,所以只要边不交那点肯定不交,因为如果你只相交一个点而边不交的话至少需要四条边,在这个题目中不存在这样的情况。

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

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

相关文章

钉钉机器人 自动化发版

开发机器人接收消息并调用构建接口, 实现自动化发版 发送指令 -> 机器人接收指令 -> 调用jenkins-job远程构建与部署钉钉机器人 自动化发版 #1 简介开发机器人接收消息并调用构建接口, 实现自动化发版 发送指令 -> 机器人接收指令 -> 调用jenkins-job远程构建与部…

ChCore-Lab4

lab 4: 多核调度与IPC 结合IPADS OS Lab Manual一起阅读,风味更佳!多核启动支持:使ChCore通过树莓派厂商所提供的固件唤醒多核执行 多核调度: 使ChCore实现在多核上进行round-robin调度。 IPC:使ChCore支持进程间通信 IPC调优:为ChCore的IPC针对测试的特点进行调优。踩坑1…

DNS 服务器是什么?有什么作用?

DNS 服务器是什么?有什么作用 一、DNS 服务器的定义 DNS 服务器即域名系统(Domain Name System)服务器。它是一种在互联网基础设施中扮演关键角色的服务器。在互联网的世界里,每台设备(如服务器、计算机等)都有一个唯一的 IP 地址,就像每部电话都有一个电话号码一样。但…

spring-boot-starter-security放行全部请求

Spring Boot项目中加了spring-boot-starter-security默认会把全部请求设置要求登录。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId> </dependency>系统自动建一个user…

提升分析效率的秘密:电商团队用它打破数据孤岛!

高效团队协作:电商团队如何用在线协同工具重塑商品数据分析流程 在如今竞争激烈的电商行业中,商品数据分析的重要性不言而喻。销售数据、库存情况、用户反馈等信息都可能成为制胜关键。然而,这些数据往往分散在不同系统中,导致团队协作效率低下。尤其是在电商团队中,数据分…

zabbix图形乱码问题

环境: OS:Centos 7 zabbix:4.0.5

OpenCL 编程步骤 3. 获取Context 上下文

转载 https://deepinout.com/opencl/opencl-basic-tutorials/opencl-create-context.html 上下文为关联的设备、内存对象、命令队列、程序对象、内核对象提供一个容器。上下文是OpenCL应用的核心。正是上下文驱动着应用程序与特定设备以及特定设备之间的通信。 对于上下文中关联…

Gitlab runner持续集成CI/CD怎么设置标签指定Runner节点执行

搭建Runner参考: https://www.cnblogs.com/minseo/p/18472436 需求:未打标签的.gitlab-ci使用默认runner 打标签的.gitlab-ci使用指定的runner环境查看 系统环境# cat /etc/redhat-release Rocky Linux release 9.3 (Blue Onyx) # uname -a Linux Rocky9StoneCrm003080 5.14.…

应用内自动续订商品,畅享无缝服务体验

用户购买某种产品时习惯一次性付款,但是对开发者而言,单次购买模式或需要用户频繁续订的服务可能会导致收入不稳定,无法获得持续稳定的收入。对于有视频、音乐等会员需求的用户,一旦体验到服务中断或需要频繁操作,可能会转向其他竞争产品,导致用户流失。 HarmonyOS SDK应…

一文学会powshell使用及功能

声明! 原文来自微信公众号泷羽Sec-track认识powsehll PowerShell(通常称作PowerShell或Windows PowerShell)是由微软开发的一种任务自动化和配置管理框架,与linux命令相似,它结合了命令行外壳和脚本语言功能,使得系统管理员和用户能够更高效地管理系统和自动化任务。 打开…

OpenAi 大模型生态体系介绍

OpenApi大模型家族介绍模型概览 多模态大模型 能够理解和生成自然语言或代码+理解图像+生成图像等 GPT-4是一个大型多模态模型(接受文本或图像输入并输出文本),它可以比我们以前的任何模型都更准确地解决难题这得益于它更广泛的通用知识和更高级的推理能力。GPT-4可在OpenAIAP…

configure: error: curses development files not found

001、报错如下: configure: error: curses development files not found 002、rocky9系统[root@PC1 samtools-1.21]# cat /etc/redhat-release Rocky Linux release 9.4 (Blue Onyx) 003、解决方法[root@PC1 samtools-1.21]# dnf install ncurses-devel.x86_64 -y 004、配置…