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

P1194 买礼物(最小生成树)(内附封面)

买礼物

题目描述

又到了一年一度的明明生日了,明明想要买 B B B 样东西,巧的是,这 B B B 样东西价格都是 A A A 元。

但是,商店老板说最近有促销活动,也就是:

如果你买了第 I I I 样东西,再买第 J J J 样,那么就可以只花 K I , J K_{I,J} KI,J 元,更巧的是, K I , J K_{I,J} KI,J 竟然等于 K J , I K_{J,I} KJ,I

现在明明想知道,他最少要花多少钱。

输入格式

第一行两个整数, A , B A,B A,B

接下来 B B B 行,每行 B B B 个数,第 I I I 行第 J J J 个为 K I , J K_{I,J} KI,J

我们保证 K I , J = K J , I K_{I,J}=K_{J,I} KI,J=KJ,I 并且 K I , I = 0 K_{I,I}=0 KI,I=0

特别的,如果 K I , J = 0 K_{I,J}=0 KI,J=0,那么表示这两样东西之间不会导致优惠。

输出格式

一个整数,为最小要花的钱数。

样例 #1

样例输入 #1

1 1
0

样例输出 #1

1

样例 #2

样例输入 #2

3 3
0 2 4
2 0 2
4 2 0

样例输出 #2

7

提示

样例解释 2 2 2

先买第 2 2 2 样东西,花费 3 3 3 元,接下来因为优惠,买 1 , 3 1,3 1,3 样都只要 2 2 2 元,共 7 7 7 元。

(同时满足多个“优惠”的时候,聪明的明明当然不会选择用 4 4 4 元买剩下那件,而选择用 2 2 2 元。)

数据规模

对于 30 % 30\% 30% 的数据, 1 ≤ B ≤ 10 1\le B\le 10 1B10

对于 100 % 100\% 100% 的数据, 1 ≤ B ≤ 500 , 0 ≤ A , K I , J ≤ 1000 1\le B\le500,0\le A,K_{I,J}\le1000 1B500,0A,KI,J1000

2018.7.25新添数据一组

大致思路

简单的最小生成树问题
对于这种问题,关键是如何把题目转化为使用最小生成树解决。

对于本题,注意每个物品有自己的初始价格与优惠价格

但是!也有反向优惠(优惠了还不如不优惠)的情况

那么我们需要选择所有物品,而物品之间有优惠关系,可以把每个物品看做一个点,每个优惠看作一条边权为 w 的边,那么这个问题也就转化为了最小生成树问题

对于上述的反向优惠的情况,我们可以建一个超级点 ‘0’,向每一个点建一条边权为 a 的边,这样就可以避免反向优惠的情况啦~

AC CODE

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+114514;
int a,n,ans=0;
int sum=0,fa[N];
struct node{int u,v,w;
}k[N];
bool cmp(node aa,node bb){return aa.w<bb.w;
}
int find(int x){if(fa[x]==x)return x;return fa[x]=find(fa[x]);
}
void merge(int x,int y){fa[find(x)]=find(y);
}
void kruskal(){sort(k+1,k+1+sum+n+1,cmp);for(int i=1;i<=n;i++){fa[i]=i;}for(int i=1;i<=sum+n+1;i++){if(find(k[i].u)!=find(k[i].v)){ans+=k[i].w;merge(k[i].u,k[i].v);}}
}
int main(){cin>>a>>n;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){int w;cin>>w;if(w==0)continue;sum++;k[sum].u=i;k[sum].v=j;k[sum].w=w;}}for(int i=sum+1;i<=sum+n;i++){k[i].u=0;k[i].v=i-sum;k[i].w=a;}kruskal();cout<<ans<<endl;return 0;
}

附封面(天气之子)

请添加图片描述

相关文章:

P1194 买礼物(最小生成树)(内附封面)

买礼物 题目描述 又到了一年一度的明明生日了&#xff0c;明明想要买 B B B 样东西&#xff0c;巧的是&#xff0c;这 B B B 样东西价格都是 A A A 元。 但是&#xff0c;商店老板说最近有促销活动&#xff0c;也就是&#xff1a; 如果你买了第 I I I 样东西&#xff0…...

oracle基础语法和备份恢复

Oracle总结 sql命令分类 1.DDL&#xff0c;数据定义语言&#xff0c;create创建/drop销毁 2.DCL&#xff0c;数据库控制语言&#xff0c;grant授权/revoke撤销 3.DML&#xff0c;数据操纵语言&#xff0c;insert/update/delete等sql语句 4.DQL&#xff0c;数据查询语言&am…...

【MATLAB第66期】#源码分享 | 基于MATLAB的PAWN全局敏感性分析模型(有条件参数和无条件参数)

【MATLAB第66期】#源码分享 | 基于MATLAB的PAWN全局敏感性分析模型&#xff08;有条件参数和无条件参数&#xff09; 文献参考 Pianosi, F., Wagener, T., 2015. A simple and efficient method for global sensitivity analysis based on cumulative distribution functions.…...

vue2过渡vue3技术差异点指南

基础点 reactive() 定义响应式变量(仅仅引用类型有效&#xff1a;对象数组map&#xff0c;set)&#xff1a;reactive(),类似于data中return的数据 例子&#xff1a; import { reactive } from vueexport default {setup() {const state reactive({ count: 0 })function in…...

两个多选框(select)之间值的左右上下移动

<!DOCTYPE html> <html> <head><meta charset"utf-8"><title>两个多选框(select)之间值的左右上下移动</title> </head> <script src"https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>&…...

【设计模式】——模板模式

什么是模板模式&#xff1f; 模板方法模式&#xff08;Template Method Pattern&#xff09;&#xff0c;又叫模板模式(Template Pattern)&#xff0c;在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现&#xff0c;但调用将以抽象类中定义的方式进行…...

工业机器视觉系统开发流程简介

需求分析和系统设计&#xff1a;与用户合作&#xff0c;明确系统的功能和性能需求&#xff0c;并设计系统的整体架构。 软、硬件选型&#xff1a;根据需求分析结果&#xff0c;选择适合的软、硬件设备&#xff0c;包括光学传感器、相机、光源、图像采集设备、处理器等。 软件…...

【Unity3D】Renderer Feature简介

1 3D 项目迁移到 URP 项目后出现的问题 3D 项目迁移至 URP 项目后&#xff0c;会出现很多渲染问题&#xff0c;如&#xff1a;材质显示异常、GL 渲染不显示、多 Pass 渲染异常、屏幕后处理异常等问题。下面将针对这些问题给出一些简单的解决方案。 URP 官方教程和 API 详见→Un…...

麻了!包含中科院TOP,共16本期刊被标记为“On Hold”状态!

近日&#xff0c;小编从科睿唯安旗下的“Master Journal List”官网查到&#xff0c;除了知名老牌期刊Chemosphere竟然被标记为“On Hold”状态&#xff0c;目前共有7本SCI期刊&#xff0c;1本SSCI期刊&#xff0c;8本ESCI期刊被标记为“On Hold”&#xff0c;究竟是怎么回事呢…...

2.Flink应用

2.1 数据流 DataStream&#xff1a;DataStream是Flink数据流的核心抽象&#xff0c;其上定义了对数据流的一系列操作DataStreamSource&#xff1a;DataStreamSource 是 DataStream 的 起 点 &#xff0c; DataStreamSource 在StreamExecutionEnvironment 中 创 建 &#xff0c;…...

Matlab进阶绘图第25期—三维密度散点图

三维密度散点图本质上是一种特征渲染的三维散点图&#xff0c;其颜色表示某一点所在区域的密度信息。 除了作图&#xff0c;三维密度散点图绘制的关键还在于密度的计算。 当然&#xff0c;不管是作图还是密度的计算&#xff0c;这些在《Matlab论文插图绘制模板》和《Matlab点…...

C++设计模式之桥接设计模式

文章目录 C桥接设计模式什么是桥接设计模式该模式有什么优缺点优点缺点 如何使用 C桥接设计模式 什么是桥接设计模式 桥接设计模式是一种结构型设计模式&#xff0c;它可以将抽象接口和实现分离开来&#xff0c;以便它们可以独立地变化和扩展。 该模式有什么优缺点 优点 灵…...

论文笔记:SUPERVISED CONTRASTIVE REGRESSION

2022arxiv的论文&#xff0c;没有中&#xff0c;但一作是P大图班本MIT博&#xff0c;可信度应该还是可以的 0 摘要 深度回归模型通常以端到端的方式进行学习&#xff0c;不明确尝试学习具有回归意识的表示。 它们的表示往往是分散的&#xff0c;未能捕捉回归任务的连续性质。…...

Java 多线程并发 CAS 技术详解

一、CAS概念和应用背景 CAS的作用和用途 CAS&#xff08;Compare and Swap&#xff09;是一种并发编程中常用的技术&#xff0c;用于解决多线程环境下的并发访问问题。CAS操作是一种原子操作&#xff0c;它可以提供线程安全性&#xff0c;避免了使用传统锁机制所带来的性能开…...

如何压缩高清PDF文件大小?将PDF文件压缩到最小的三个方法

PDF格式是一种非常常用的文档格式&#xff0c;但是有时候我们需要将PDF文件压缩为更小的大小以便于传输和存储。在本文中&#xff0c;我们将介绍三种PDF压缩的方法&#xff0c;包括在线PDF压缩、利用软件PDF压缩以及使用WPS缩小pdf。 首先&#xff0c;在线PDF压缩是最常用的方…...

04 统计语言模型(n元语言模型)

博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https://github.com/nickchen121/Pre-training-language-model 配套博客链接:https://www.cnblogs.com/nickchen121/p/15105048.html 预训练 预先训练 我们…...

Linux各目录详解

Linux文件系统是一个树状结构&#xff0c;由多个目录&#xff08;或文件夹&#xff09;组成。以下是常见的Linux目录及其功能的详细解释&#xff1a; /&#xff08;根目录&#xff09;&#xff1a;在Linux文件系统中&#xff0c;所有其他目录和文件都是从根目录派生的。所有的存…...

【css】属性选择器分类

属性选择器类型示例说明[attribute][target]选择带有 target 属性的所有元素[attributevalue][target_blank]选择带有 target“_blank” 属性的所有元素[attribute~value][title~flower]选择带有包含 “flower” 一词的 title 属性的所有元素[attribute|value][lang|en]选择带有…...

备份容灾哪家好怎么样

数字化时代&#xff0c;数据安全是我们不容忽视的问题。云呐容灾备份系统不仅提供了强大的数据保护功能&#xff0c;而且操作简单&#xff0c;使用方便。无论你是企业管理员&#xff0c;还是个人用户&#xff0c;都可以轻松上手。它还提供了丰富的报告和监控功能&#xff0c;让…...

【前端实习生备战秋招】—HTML 和 CSS面试题总结(三)

【前端实习生备战秋招】—HTML 和 CSS面试题总结&#xff08;三&#xff09; 1.行内元素有哪些&#xff1f;块级元素有哪些&#xff1f; 空(void)元素有那些&#xff1f; CSS 规范规定&#xff0c;每个元素都有 display 属性&#xff0c;确定该元素的类型&#xff0c;每个元素…...

GaussDB定时任务管理:从基础到高级实践

一、定时任务体系架构1.1 双引擎调度架构GaussDB采用​​内置调度器外部集成​​的混合架构&#xff1a;​​内置调度器​​&#xff1a;基于PostgreSQL的pgAgent增强实现 ​​外部集成​​&#xff1a;支持与Linux cron、Kubernetes CronJob联动 ​​分布式调度​​&#xff1…...

STM32CubeMX实战指南:ADC多通道扫描与DMA传输配置

1. ADC多通道扫描与DMA传输的核心价值 第一次用STM32做多路传感器采集时&#xff0c;我像大多数新手一样傻傻地用轮询方式读取每个ADC通道。结果发现CPU利用率直接飙到80%&#xff0c;系统卡得连LED灯都闪不利索。后来工程师老张甩给我一句话&#xff1a;"用DMA啊&#xf…...

NocoDB企业数据管理平台:如何用可视化数据库解决业务协作难题

NocoDB企业数据管理平台&#xff1a;如何用可视化数据库解决业务协作难题 【免费下载链接】nocodb &#x1f525; &#x1f525; &#x1f525; A Free & Self-hostable Airtable Alternative 项目地址: https://gitcode.com/GitHub_Trending/no/nocodb 在数字化转型…...

基于ReAct范式的链式追踪工具:提升学术研究效率的AI智能体实践

1. 项目概述与核心价值如果你经常需要做文献调研、追踪某个科学概念的源头&#xff0c;或者想搞清楚一个复杂话题背后的证据链&#xff0c;那你一定体会过在搜索引擎和无数个学术网站之间反复横跳的痛苦。传统的搜索方式&#xff0c;比如在Google Scholar里输入一个关键词&…...

DeepSeek Chat功能测试实战手册:5步完成生产级对话模型验收(附测试用例模板)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek Chat功能测试实战手册&#xff1a;5步完成生产级对话模型验收&#xff08;附测试用例模板&#xff09; DeepSeek Chat 作为开源大语言模型对话接口&#xff0c;其生产就绪性需通过结构化、可…...

CentOS 7服务器上,从零搞定NVIDIA驱动和CUDA 11.1的保姆级避坑指南

CentOS 7服务器NVIDIA驱动与CUDA 11.1实战避坑手册 接手一台老旧GPU服务器时&#xff0c;最令人头疼的莫过于搭建深度学习环境。那些看似简单的安装步骤背后&#xff0c;往往隐藏着无数个让新手崩溃的"坑"。本文将带你穿越雷区&#xff0c;用最稳妥的方式在CentOS 7上…...

AI驱动的智能监控:从时序异常检测到自动化运维实战

1. 项目概述&#xff1a;AI驱动的系统守护者最近在折腾一个服务器监控项目时&#xff0c;发现了一个挺有意思的开源工具&#xff0c;叫bhusingh/ai-watchdog。这个名字直译过来就是“AI看门狗”&#xff0c;听起来就很有画面感。它本质上是一个利用人工智能技术来监控系统、预测…...

胶片颗粒≠随机噪点,35mm风格出图翻车全解析,深度拆解ISO模拟、过期胶卷色偏与显影液残留建模逻辑

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;胶片颗粒≠随机噪点&#xff0c;35mm风格出图翻车全解析 胶片摄影的颗粒感&#xff08;Grain&#xff09;是银盐晶体在显影过程中形成的物理性、非均匀、结构化纹理&#xff0c;而数字图像中常见的“噪…...

基于语义搜索与向量数据库的AI工具发现引擎Lyra架构与实践

1. 项目概述与核心价值最近在折腾一个AI驱动的工具发现平台&#xff0c;核心是解决一个很实际的问题&#xff1a;面对市面上成千上万、层出不穷的AI工具和开源项目&#xff0c;我们如何高效地找到真正适合自己需求的那一个&#xff1f;不是简单地罗列清单&#xff0c;而是能理解…...

2026年津南区管道疏通门店大揭秘,这些亮点你知道吗?

在津南区&#xff0c;管道问题时常困扰着居民、商户和企业。随着城市的发展&#xff0c;对管道疏通服务的需求也日益增长。今天&#xff0c;就为大家揭秘2026年津南区一家备受瞩目的管道疏通门店——天津鸿运来管道疏通有限公司。一、全场景适配&#xff0c;服务无盲区鸿运来管…...