首页 > 其他分享 >分层图

分层图

时间:2023-08-25 11:15:39浏览次数:368  
标签:le int 连到 分层 长度 SpellCard div

引入:P4822

我们可以建出一个 \(k + 1\) 层的图,第 \(i\) 层指的是使用了 \(i - 1\) 次的 SpellCard。

每一层的一个点到每一层的另一个按照正常的方式连就行了。

另一种情况就是层与层的连边,也就是使用 SpellCard。

假如说有一条起点为 \(u\) 终点为 \(v\) 长度为 \(w\) 的边。

于是我们按照题意就知道从第 \(i\) 层的 \(u\) 连到第 \(i + 1\) 层的 \(v\) 可以连一条长度为 \(w \div 2\)。

同理从第 \(i\) 层的 \(v\) 连到第 \(i + 1\) 层的 \(u\) 可以连一条长度为 \(w \div 2\)。但是这两条边都是有向边。

这样这题的边就连完了,直接从第 \(1\) 层的 \(1\) 号点开始跑最短路,答案就是 \(min(dis_{n \times i})\) 其中 \(1 \le i \le k + 1\)。

附上主函数的代码:

int main()
{
	cin >> n >> m >> k;
	for(int i = 1;i <= m;i++)
	{
		int u,v,w;
		cin >> u >> v >> w;
		for(int j = 1;j <= k + 1;j++)
		{
			add_edge(t(u,j),t(v,j),w);
			add_edge(t(v,j),t(u,j),w);
			add_edge(t(u,j),t(v,j + 1),w / 2);
			add_edge(t(v,j),t(u,j + 1),w / 2);
		}
	}
	dij();
	int ans = 1e9;
	for(int i = 1;i <= k + 1;i++)
	{
		ans = min(ans,dis[n * i]);
		// cout << dis[n * i] << '\n';
	}
	cout << ans;
	return 0;
}

后面还要写先留着。

标签:le,int,连到,分层,长度,SpellCard,div
From: https://www.cnblogs.com/Carousel/p/17656364.html

相关文章

  • 图论-分层图学习笔记
    在前几天模拟赛中第一次见,之前不太理解,今天大概搞明白些了。个人理解分层图:图中的边在特定的时间可以变换。那就将各个时间根据当前不同的状态分层建图。说白了就是存各边的不同状态。连边时,同一层的点可以相连,不同层的也可以连过去。所以你就会发现分层图的难度在于建图,连边......
  • DDD中的分层架构
    领域区域设计的分层架构模型其实是在不断优化和发展的,从最早的传统直肠子式的四层架构模型,逐渐演变成目前以依赖倒置为原则的新的四层架构模型,从而实现了各层对基础设施层的解耦。DDD中的分层架构很好的应用了关注点分离原则SeparationofConcerns(SOC),每一层做好自己的事情,减少......
  • 聊聊自动化测试的分层实践
    技术群里,有同学聊起了各自在实践自动化测试时遇到的各种问题,最典型的就是落地难度和投入产出比。毕竟在当前这个时间节点,单纯的技术实践如果不能带来实际可见的业务价值,确实很影响个人绩效和团队产出。这篇文章,结合自己的经验,聊聊关于自动化测试的分层和落地实践场景以及前置条......
  • 【源码研读】MLIR Dialect 分层设计
    以「疑问-求解」的形式来组织调研,此处记录整个过程。1.MLIR中的Dialect是「分层」设计的么?先问是不是,再谈为什么。从LLVM社区可以看出,至少在做Codegen时,是采用了「分层」的思想来逐步Lowering的(具体见下图)。MLIR为编译优化而生,分层Lowering是比较符合设计直觉......
  • [YsOI2023] 广度优先遍历 逆向输出路径(分层建树拓扑序. LCA)
    今天的模板测试是无向图上的广度优先遍历,【数据删除】马上写好了代码:1#include<cstdio>2#include<cstring>3#include<iostream>4#include<algorithm>5#include<vector>6#include<queue>7usingnamespacestd;8constintmaxn=100005;......
  • 拓端tecdat|R语言实现k-means聚类优化的分层抽样(Stratified Sampling)分析各市镇的人
    最近我们被客户要求撰写关于k-means聚类的研究报告,包括一些图形和统计输出。简介假设我们需要设计一个抽样调查,有一个完整的框架,包含目标人群的信息(识别信息和辅助信息)。如果我们的样本设计是分层的,我们需要选择如何在总体中形成分层,以便从现有的辅助信息中获得最大的优势。换句话......
  • 拓端tecdat|R语言实现k-means聚类优化的分层抽样(Stratified Sampling)分析各市镇的人
    原文链接:http://tecdat.cn/?p=23038原文出处:拓端数据部落公众号最近我们被客户要求撰写关于k-means聚类的研究报告,包括一些图形和统计输出。简介假设我们需要设计一个抽样调查,有一个完整的框架,包含目标人群的信息(识别信息和辅助信息)。如果我们的样本设计是分层的,我们需要选择......
  • 分层解耦、IOC和DI
    学习教程:【黑马程序员2023新版JavaWeb开发教程,实现javaweb企业开发全流程(涵盖Spring+MyBatis+SpringMVC+SpringBoot等)】https://www.bilibili.com/video/BV1m84y1w7Tb/?p=161&share_source=copy_web&vd_source=2c07d62293f5003c919b2df9b2e0549e分层解耦三层架构在进行软件设......
  • 粗略认识分层结构中的各种O (DTO VO BO PO DO)
    DTO(DataTransferObject)数据传输对象这个传输通常指的是前端与后端之间的传输,因此通常作为用于展示层与服务层之间的数据传输对象。但在微服务盛行的当下,服务和服务之间调用的传输对象也使用DTO.如下图中调用远程业务时返回DTO对象.而且前端传送给后端的数据使用Q......
  • springboot项目分层架构
    SpringBoot项目分层架构SpringBoot是一个用于构建Java应用程序的开源框架,它提供了快速开发的特性,使得开发人员可以更加专注于业务逻辑的编写。在开发一个SpringBoot项目时,良好的分层架构是非常重要的,它可以帮助我们更好地组织代码并提高项目的可维护性和可扩展性。本文将介绍一......