【AcWing题解/洛谷题解/USACO题解】P1948 Telephone Lines S 通信线路
题目链接AcWinghttps://www.acwing.com/problem/content/description/342/洛谷https://www.luogu.com.cn/problem/P1948前置知识1.1.1.二分法和二分答案2.2.2.单源最短路、双端队列宽度优先搜索思路分析本题解的设问主要依据AcWing的翻译所作.第一部分从设问开始——二分法的框架设问中强调需要支付的费用是最昂贵的那一条同时又强调要使最小即求最大值的最小值所以采用二分法。二分法中我们需要得到一个满足题目要求的性质。设二分得到的中间值为xxx题目要求指定路径上不超过kkk条电缆则我们就需要判断费用大于xxx的电缆总数是否小于等于kkk。如果费用大于xxx的电缆总数超过kkk则说明我就算全部都免费升级费用大于xxx的电缆也会在该部分存在电缆不免费升级那么当前中间值xxx就不是剩下电缆中最昂贵的不符合题意。对于二分法中的左右边界虽然电缆费用的范围为111到10610^6106但是如果当前数据无解我们会二分到右边界如果有解仍然有可能会到右边界为了区分这样的情况我们把二分的左右边界设为000和106110^611061。若x≤kx≤kx≤k则满足性质将midmidmid继续往前半部分推移否则不满足性质往后半部分推移。第二部分性质的判定——最短路的结合如何判定其是否满足性质呢我们可以设费用大于xxx的电缆权值为1设费用小于等于xxx的电缆权值为0再做最短路算法这样就可以算出最少需要有多少电缆费用大于xxx了。如果到达点NNN时的距离dis[N]dis[N]dis[N]小于等于kkk则说明电缆数不超过kkk条。对于边权值只有000和111的最短路我们可以使用双端队列BFS。AC代码细节上的注意点已经写入注释。#includeiostream#includecstdio#includecstring#includedequeusingnamespacestd;//注意点1边要开两倍空间因为是双向边constintN1100,M2e410,INF0x3f3f3f3f;intn,m,k;inte[M],ne[M],h[N],w[M],idx;intst[N],dis[N];dequeintq;voidadd(inta,intb,intc){w[idx]c;e[idx]b;ne[idx]h[a];h[a]idx;return;}boolcheck(intx){//注意点2st数组一定要记得初始化memset(st,0,sizeofst);memset(dis,INF,sizeofdis);dis[1]0;q.push_back(1);while(!q.empty()){intnowq.front();q.pop_front();if(st[now])continue;st[now]true;for(intih[now];i!-1;ine[i]){intje[i],vw[i]x;if(dis[j]dis[now]v){dis[j]dis[now]v;if(!v)q.push_front(j);elseq.push_back(j);}}}returndis[n]k;}intmain(){//注意点3头数组也一定要初始化memset(h,-1,sizeofh);scanf(%d%d%d,n,m,k);for(inti1;im;i){inta,b,c;scanf(%d%d%d,a,b,c);add(a,b,c);add(b,a,c);}intl0,r1e61;while(lr){intmidlr1;if(check(mid))rmid;elselmid1;}if(r1e61)printf(-1);elseprintf(%d,r);return0;}

相关新闻

AM1705工业嵌入式开发实战:ARM9核心、PRU实时单元与硬件设计详解

AM1705工业嵌入式开发实战:ARM9核心、PRU实时单元与硬件设计详解

1. 项目概述:为什么选择AM1705这颗“老将”?在嵌入式开发领域,尤其是工业控制和自动化场景,选型往往是一场在性能、成本、稳定性和长期供货之间的艰难平衡。十年前,当TI推出基于ARM926EJ-S内核的AM1705时,它…

2026/7/27 5:54:44 阅读更多 →
C++学习打卡day1

C++学习打卡day1

memset头文件&#xff1a;#include <string.h>函数原型&#xff1a;void *memset(void *ptr,int value,size_t_Size)作用&#xff1a;1.逐字节赋值-->memset&#xff08;传入内存起始地址&#xff0c;赋值为什么&#xff0c;要赋值几位&#xff09;。2.可以用于--数组…

2026/7/27 5:54:44 阅读更多 →
【数字孪生工业应用实战】第4篇:实时数据采集与多源异构数据集成:构筑数字孪生的“神经系统” —— 从协议适配到数据湖的万字实战全解

【数字孪生工业应用实战】第4篇:实时数据采集与多源异构数据集成:构筑数字孪生的“神经系统” —— 从协议适配到数据湖的万字实战全解

【数字孪生工业应用实战】第4篇:实时数据采集与多源异构数据集成:构筑数字孪生的“神经系统” —— 从协议适配到数据湖的万字实战全解 摘要 在数字孪生系统建设中,数据采集与多源异构集成是决定项目成败的第一道关卡。工业现场充斥着Modbus、OPC UA、MQTT等多种协议,数据…

2026/7/27 5:54:44 阅读更多 →

最新新闻

AI智能问卷设计系统:NLP与知识图谱的实践应用

AI智能问卷设计系统:NLP与知识图谱的实践应用

1. 项目背景与核心价值去年参与某高校社科项目时&#xff0c;我们团队在问卷调研环节踩了个大坑——花了两个月设计的问卷&#xff0c;回收后发现有37%的无效数据。这个问题促使我开始研究AI驱动的智能问卷设计系统&#xff0c;也就是今天要分享的"虎贲等考"方案。传…

2026/7/27 6:05:53 阅读更多 →
NotebookLM构建私域知识库的实践与优化

NotebookLM构建私域知识库的实践与优化

1. 项目概述&#xff1a;当Google NotebookLM遇上私域知识库去年我在运营一个垂直领域的公众号时&#xff0c;每天最头疼的就是内容产出。直到发现Google Research实验室推出的NotebookLM&#xff08;原Project Tailwind&#xff09;&#xff0c;这个基于语言模型的AI笔记工具彻…

2026/7/27 6:05:53 阅读更多 →
多通道卷积神经网络在变压器故障诊断中的应用

多通道卷积神经网络在变压器故障诊断中的应用

1. 变压器故障诊断的挑战与多通道卷积神经网络解决方案变压器作为电力系统的核心设备&#xff0c;其运行状态直接影响电网安全。传统故障诊断方法主要依赖专家经验或信号处理技术&#xff0c;但面对复杂的振动信号时往往力不从心。我在某变电站的实地调研中发现&#xff0c;即使…

2026/7/27 6:05:53 阅读更多 →
易语言软件怎么免费增加网络验证?怎么增加卡密系统?

易语言软件怎么免费增加网络验证?怎么增加卡密系统?

今天就分享一个给易语言软件免费增加网络验证和卡密系统的方法&#xff0c;用的是卡密通——一款永久免费的云端网络验证平台&#xff0c;不需要自己买服务器&#xff0c;不需要写后端代码&#xff0c;直接调用模块就能搞定。 一、为什么选择卡密通&#xff1f; 卡密通是国内…

2026/7/27 6:05:53 阅读更多 →
AI水下光学系统:技术原理、算法实现与应用场景全解析

AI水下光学系统:技术原理、算法实现与应用场景全解析

最近&#xff0c;一家名为"大疆系AI自然探索公司"的初创企业获得了五源资本和顺为资本的投资&#xff0c;这家公司最引人注目的创新是"首创水下光学系统"。对于关注AI和硬科技的投资人来说&#xff0c;这似乎又是一个值得关注的标的&#xff1b;但对于技术…

2026/7/27 6:05:53 阅读更多 →
列表查询的 GraphQL:一行代码终结你的 if-else 地狱

列表查询的 GraphQL:一行代码终结你的 if-else 地狱

一个后端工程师的自白&#xff1a;为什么你写了 100 行 Java 代码&#xff0c;其实只做了一件事——把前端传进来的几个参数&#xff0c;拼成一条 SQL。 一页纸的需求 产品经理小王给我发了一张原型图。很普通的后台管理页面&#xff1a; 表格分页展示顶部四个筛选条件&#…

2026/7/27 6:04:47 阅读更多 →

日新闻

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

2026/7/27 0:00:54 阅读更多 →
SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

1. 项目概述&#xff1a;从寄存器手册到实战指南 如果你手头有一份类似德州仪器&#xff08;TI&#xff09;TMS320x240xA系列DSP的SPI模块技术手册&#xff0c;看着里面密密麻麻的寄存器位定义、时序图和公式&#xff0c;是不是感觉头大&#xff1f;这份资料虽然权威&#xff0…

2026/7/27 0:00:54 阅读更多 →
【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

2026/7/27 0:00:54 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档&#xff0c;可以直接使用&#xff01;系统支持图片、视频、摄像头等多种方式检测裂缝&#xff0c;功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像&#xff01; pubg绝地求生目标检测数据集 1分类&#xff1a;e_body&#xff0c;14905个标签&#xff0c;txt格式 共计14244张图&#xff0c;99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别&#xff1a; allies enemy tag图片总量&#xff1a;7247张训练集&#xff1a;5139张验证集&#xff1a;1425张测试集&#xff1a;683张标注状态&#xff1a;全部已标注&#xff0c;即拿即用数据格式&#xff1a;支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻