洛谷 P1194 买礼物 的题解

洛谷 P1194 买礼物 的题解

题目链接

题解

备战 CSP,复习一下最小生成树,祝大家 rp++!!!

经典的 K r u s k a l Kruskal Kruskal

把所有的物品都看作节点,物品之间的优惠或费用为边的权值,所以要做的就应该是把所有点连接起来的最小代价,也就是求该图的最小生成树。

然后正常建边,按边权跑一遍 K r u s k a l Kruskal Kruskal,就万事大吉了

AC 代码

#include <bits/stdc++.h>
#define lowbit(x) x & (-x)
#define endl "\n"
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
namespace fastIO {inline int read() {register int x = 0, f = 1;register char c = getchar();while (c < '0' || c > '9') {if(c == '-') f = -1;c = getchar();}while (c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();return x * f;}inline void write(int x) {if(x < 0) putchar('-'), x = -x;if(x > 9) write(x / 10);putchar(x % 10 + '0');return;}
}
using namespace fastIO;
int a, b, fa[300005], ans = 0, money, tot = 0;
struct node {int x, y, z;
}f[300005];
int find(int x) {return x == fa[x] ? x : fa[x] = find(fa[x]);}
bool cmp (node a, node b) {return a.z < b.z;}
int main() {//freopen(".in","r",stdin);//freopen(".out","w",stdout);a = read(), b = read();for(int i = 1; i <= b; i ++) {fa[i] = i; }for(int i = 1; i <= b; i ++) {tot ++;f[tot].x = 0;f[tot].y = i;f[tot].z = a;} for(int i = 1; i <= b; i ++) {for(int j = 1; j <= b; j ++) {money = read();if(money) {tot ++;f[tot].x = i;f[tot].y = j;f[tot].z = money;}}}sort(f + 1, f + tot + 1, cmp);for (int i = 1; i <= tot; i ++) {if (find(f[i].x) != find(f[i].y)) {fa[find(f[i].y)] = find(f[i].x);ans += f[i].z;}else continue;}write(ans);return 0;
}

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

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

相关文章

Why I‘m getting 404 Resource Not Found to my newly Azure OpenAI deployment?

题意&#xff1a;为什么我新部署的Azure OpenAI服务会出现404资源未找到的错误&#xff1f; 问题背景&#xff1a; Ive gone through this quickstart and I created my Azure OpenAI resource created a model deployment which is in state succeedded. I also playaround …

【C++ Primer Plus习题】14.3

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream> #include "queuetp.h&quo…

JavaWeb后端开发总结(3)

AOP基础 AOP概述 首先我们要知道AOP是什么&#xff1f; 看下图 个人解析&#xff1a; AOP叫做面向切面编程&#xff0c;但是实际上就是面向方法编程 图中下面一部分是一个AOP的案例 AOP快速入门案例代码实现 案例&#xff1a;测出业务中各个业务方法所需的执行时间 如果…

framebuffer帧缓存

framebuffer:帧缓冲&#xff0c;帧缓存 Linux内核为显示提供的一套应用程序接口。&#xff08;驱动内核支持&#xff09; framebuffer本质上是一块显示缓存&#xff0c;往显示缓存中写入特定格式的数据就意味着向屏幕输出内容。framebuffer驱动程序控制LCD显示设备&#xff0…

进程与计划任务

top 查看进程 x users 表示有几个shell开启 x stopped 前台任务在后台暂停firefox & 在后台运行&#xff0c;不在前面显示 ​​​​​​​这种方式常用于需要长时间运行且不需要即时交互的程序或命令&#xff0c;以便用户可以在终端中使用其他命令或进行其他操作&#…

JAVA实习生(月薪3K-5K)应该具备哪些知识、能力

实习生其实属于 Java 基础水平&#xff0c;所以应该具备有基础知识的能力如下: 1、Java 语言基础 Java 语言基础是 Java 开发的必备知识&#xff0c;包括语法、数据类型、运算符、控制语句、类和对象等内容。掌握 Java 语言基础是进一步深入学习和应用的某础 也是通过Java编写…

Linux平台屏幕|摄像头采集并实现RTMP推送两种技术方案探究

技术背景 随着国产化操作系统的推进&#xff0c;市场对国产化操作系统下的生态构建&#xff0c;需求越来越迫切&#xff0c;特别是音视频这块&#xff0c;今天我们讨论的是如何在linux平台实现屏幕|摄像头采集&#xff0c;并推送至RTMP服务。 我们知道&#xff0c;Linux平台&…

debug对于开发工程师很重要

在日常开发中&#xff0c;总会遇到一些出人意料的bug&#xff0c;程序跑飞&#xff0c;上电就挂&#xff0c;程序没有按预期执行诸如此类的问题&#xff0c;没有好的调试方法&#xff0c;真的很难定位问题&#xff0c;更别说解决了。在这里分享我用过的一些调试方法&#xff0c…

后端开发面经系列--百度秋招一二三面

百度秋招一二三面 公众号&#xff1a;阿Q技术站 来源&#xff1a;https://www.nowcoder.com/discuss/550679042400317440 一面 1、虚函数&#xff1f; 什么是虚函数&#xff1a; 虚函数是在基类中声明的&#xff0c;而在派生类中进行重写&#xff08;override&#xff09…

“论剑”智算时代,长沙已经站在计算产业的“华山之巅”

文 | 智能相对论 作者 | 陈泊丞 共赴全新十年之约&#xff0c;长沙又来搞大事情了&#xff01; 2024互联网岳麓峰会以“AI汇湘江 数智领航未来”为主题&#xff0c;全面聚焦在“AI”时代把握数字化、网络化、智能化发展机遇&#xff0c;积极响应当前人工智能技术迅猛发展的势…

Qt5.4.1连接odbc驱动操作达梦数据库

Qt5.4.1连接odbc驱动操作达梦数据库 1 环境介绍2 Qt5.4.1 安装2.1 图形化界面安装Qt5.4.12.2 配置Qt5.4.1 环境变量2.3 Qt5.4.1 生成 libqsqlodbc.so 并配置2.3.1 生成Makefile2.3.2 查看 libqsqlodbc.so 文件并配置 3 配置Qt测试用例4 达梦数据库学习使用列表 1 环境介绍 CPU…

实现卷积层的前向传播(Pythom版)

在TensorFlow框架中&#xff0c;实现卷积层&#xff08;2维&#xff09;的代码是 tf.keras.layers.Conv2D()。它主要接收如下几个参数&#xff0c; filters&#xff1a;卷积核的个数&#xff0c;也就是卷积层输出的通道数&#xff08;沿axis-1的维度&#xff09; kernel_size&a…

【CSS】mask-image属性的详细介绍

mask-image属性是CSS中一个用于指定元素遮罩图像的属性。它允许开发者通过图像来遮罩元素的背景或其他图像内容&#xff0c;实现复杂的视觉效果。以下是对mask-image属性的详细介绍&#xff1a; 一、属性定义 mask-image属性定义了一个图像的遮罩层&#xff0c;该遮罩层将应用…

风语者:CG-23超声波风速风向传感器,与自然对话的桥梁

超声波风速风向传感器&#xff0c;又名超声波风速风向计或超声波风速风向仪&#xff0c;是一款基于超声波原理研发的风速风向测量仪器。以下是对该传感器的详细介绍&#xff1a; 一、工作原理 超声波风速风向传感器的工作原理主要基于超声波时差法。传感器通常由发射器和接收…

性能碾压pandas、polars的数据分析神器来了

来源&#xff1a;python大数据分析 费弗里 1 简介 就在几天前&#xff0c;经过六年多的持续开发迭代&#xff0c;著名的开源高性能分析型数据库DuckDB发布了其1.0.0正式版本。 DuckDB具有极强的单机数据分析性能表现&#xff0c;功能丰富&#xff0c;具有诸多拓展插件&#xf…

时空特征融合方向小论文创新点一次性都给你!看到就是赚到

朋友们&#xff0c;今天给大家推荐一个发小论文很不错的方向&#xff1a;时空特征融合。 时空特征融合是一种提高模型性能和准确性的关键技术&#xff0c;通过结合空间和时间维度的信息&#xff0c;它可以显著提高模型的预测精度和泛化能力&#xff0c;给我们提供更全面的数据…

惊!还有这种邮件群发神器!?

邮件群发工具是推广营销的重要利器。这种软件具备强大的功能&#xff0c;能够批量发送邮件&#xff0c;确保所发送的邮件不易被标记为垃圾邮件。同时&#xff0c;它还包括自动地址采集和整理功能&#xff0c;能够快速获取邮箱地址&#xff0c;省去了寻找地址的麻烦。 功能亮点&…

Trm理论 2(Word2Vec)

神经网络模型&#xff08;NNLM&#xff09;和Word2Vec NNLM模型是上次说过的模型&#xff0c;其目的是为了预测下一个词。 softmax(w2tanh(w1x b1)b2) 会得到一个副产品词向量 而Word2Vue就是专门求词向量的模型 softmax(w2*(w1*x b1)b2) Word2Vec softmax(w2*(w1*x b1)b…

好父母的新定义,看完后,你就不会再焦虑了!

前言 曾几何时&#xff0c;我们认为的完美父母应该是不打不骂&#xff0c;不吼不叫&#xff0c;能够理解孩子的需求&#xff0c;能够接受孩子的情绪&#xff0c;能够温和且坚定的拒绝孩子的请求..... 是的&#xff0c;这些都没有错&#xff0c;但我们把自己放在哪里&#xff…

Android SSE 单向接收数据

Server-Sent Events&#xff08;SSE&#xff09;是一种在客户端和服务器之间实现单向实时通信的技术。它允许服务器向客户端推送数据&#xff0c;但客户端无法使用 SSE 向服务器发送数据。这使得其适用于需要持续接收服务器数据的应用场景&#xff08;如实时通知、股票行情、社…