POJ 3723 Conscription(并查集+最小生成树)

别再死记公式了!用TL072运放设计带通滤波器,调出干净正弦波的实战心得与误区盘点 本文分享了使用TL072运放设计带通滤波器的实战经验,重点解决波形失真问题,提供单电源供电优化、动态调谐技巧及仿真与现实的参数修正方法,帮助工程师调出纯净正弦波。内容涵盖模拟电路设计中的常见误区与解决方案,适合电子工程师和爱好者参考。 阅读详情

题目链接:https://cn.vjudge.net/problem/POJ-3723

大意:需要招募女兵N人,男兵M人。每招募一个人需要花费10000美元。但是如果已经招募的人中有一些关系亲密的人,那么可以少花一些钱(10000-亲密值)。给出若干男女之间的亲密关系,求招募所有人的最小费用。(招募每个人时只能用一条关系)

思路:将人看做点(N+M个点),关系看作边,边权为亲密值的相反数。然后对整个图求最小生成树,答案就是10000*(N+M)再加上最小生成树的值。


#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<vector>
#include<queue>
#include<cmath>
using namespace std;
typedef long long ll;
const int maxn = 50000 + 5;
int fa[maxn];
struct Edge {
   int from, to, cost;
   bool operator < (const Edge& rhs) const {
      return cost < rhs.cost;
   }
   Edge(int from, int to, int cost):from(from),to(to),cost(cost){}
};
vector<Edge> edges;

int find(int x) {
   if(fa[x] == -1) return x;
   return fa[x] = find(fa[x]);
}

int kruskal(int n)
{
    sort(edges.begin(), edges.end());
    int num = 0, ans = 0;
    for(int i = 0; i < edges.size(); i++) {
        int x = find(edges[i].from), y = find(edges[i].to);
        if(x != y) {
            fa[x] = y;
            num++;
            ans += edges[i].cost;
            if(num == n-1) break;
        }
    }
    return ans;
}

int main()
{
    int T;
    scanf("%d", &T);
    while(T--) {
        int n, m, r;
        scanf("%d%d%d", &n, &m, &r);
        memset(fa, -1, sizeof fa);
        edges.clear();

        while(r--) {
            int x, y, d;
            scanf("%d%d%d", &x, &y, &d);
            x++, y++;
            edges.push_back(Edge(x, y+n,-d));
        }

        printf("%d\n", (n+m)*10000+kruskal(m+n));
    }
}


[QMT量化交易小白入门]-四、如何筛选优质可转债,并进行下单操作 通过上述步骤,成功地使用Python代码完成了可转债的筛选、数据处理和下单操作。当然,这只是一个基础的示例,实际投资中还需要考虑更多因素,如市场环境、资金管理、风险控制等。希望本文能为各位投资者提供一些有价值的参考,助力大家在投资道路上走得更远。 阅读详情

相关推荐

手机也能跑大模型?QNN框架实战:从模型量化到Android部署全流程

本文详细介绍了如何利用QNN框架将大模型部署到Android手机端进行端侧推理。通过实战演示了从模型量化(如INT4/INT8混合精度)到Android应用集成的全流程,包括内存优化、性能调优及常见问题排查,帮助开发者实现大模型在资源受限设备上的高效本地运行。

joy55的博客 500

POJ 3723(最小生成树+优先队列)

POJ 3723 原题链接:http://poj.org/problem?id=3723 大致题意:招募n名男生与m名女生,没招募一位,底薪是10000RMB,若i男与j女之间存在亲密值,那么实际支付10000-k。 求招募n+m员工 所花最小费用 思路:最小生成树无疑了,将男生的编号加上m或者将女生编号加上n,那么就让女生和男生称为一体,换句话说 顶点数为n+m。 求最小生成树有两种方法:1.prime算法。2.kruskal算法。 本题可用kruskal(没试过prime)+并查集维护边+优先队列(so

weixin_51596558的博客 556

UWB学习——day4

总的来说,BPM-BPSK调制方案是一种利用脉冲位置和相位来编码信息的高效数字调制技术,特别适用于UWB通信系统,以实现高速数据传输和频谱效率。这种方式将时间和相位综合使用,从而提高了数据传输的容量。总之,超外差结构是一种接收器设计,通过将不同频率的信号转换到一个共同的中间频率来提高信号选择性和抗干扰性。超外差结构是一种用于接收器的电子电路设计,它的目标是从无线信号中提取有用的信息,比如音频、数据或图像。该芯片的接收机是超外差结构,所谓超外差结构一种基于频率转换的接收器架构,旨在提高信号选择性和抗干扰性。

许帅的博客 2557

POJ 3723(最大生成树+kuruakal)

Conscription Time Limit: 1000MS Memory Limit: 65536K Description Windy has a country, and he wants to build an army to protect his country. He has picked up N girls and M boys and wants to collect...

诗意的栖居 503

105. replace( )函数

【目录】

weixin_63986098的博客 1万+

(12)单相降压自耦变压器的等效电路和仿真模型

本文根据电机学基本原理,从单相双绕组变压器的接线方式出发,建立基本方程并导出T型等效电路。然后将双绕组变压器演变成一种降压自耦变压器,详细地建立起单相降压自耦变压器的数学模型以及导出相对应的等效电路,最后用Matlab/simulink的simscape元件库元件建立了基于单相自耦变压器的T型等效电路的仿真模型。用实例仿真验证了本文工作的正确性。

weixin_45670943的博客 1046

poj3723(kruskal最大生成树)

解题思路:最小生成树裸题,由于边的数目比较少,所以选用复杂度为O(ElogV)的kruskal算法,和最小生成树的区别是边的排序由大到小排。 #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;iostream&gt; #include&lt;algorithm&gt; using namespace std; struct e...

qq_39861441的博客 360

NEU-DET 冷轧钢缺陷检测:基于 YOLOv8 的目标检测与可视化 UI 实现

冷轧钢的生产过程中,由于设备故障、工艺问题或者人为因素,钢板表面可能会出现多种缺陷,如划痕、裂纹、孔洞等,这些缺陷会严重影响钢材的质量。它比之前的版本(如 YOLOv5、YOLOv4)在速度和精度上都有显著提升,并且对硬件要求较低,适合进行工业界面和嵌入式系统的应用。这些版本相较于更大型的模型(如 YOLOv8x)具有更快的推理速度和较低的资源占用,适合工业生产线中的实时应用。通过将训练好的模型部署到工业生产线摄像头中,我们可以实现实时的缺陷检测,极大地提升生产效率和产品质量。

YOLO 736

poj 3723(最大权森林)

题意:要招募n个男兵和m个女兵,而每招募一个人都要花费10000,这可是笔大开销,还好,可以用男女之间的关系减少费用,因为当招募一个士兵时,如果已招的人里与其有t点关系,则只需10000-n的费用。                  给出r对关系,求出最少费用。      分析:当招募b时,若用了b与a 的关系,则在a和b之间连一条边,很明显,当全部招募后,会连出一个森林,这个森林的总权值就是

流沙-岁月 936

Vue3 - 完美解决 vite 打包后在本地浏览器直接打开运行,build 打包后双击 index.html 直接以 file 协议运行网站(资源、接口等正常访问,和部署到服务器运行效果一样)

vue3vite怎么支持file协议本地打开,vite打包文件如何支持files协议,支持双击即可打开网页,vue3vite打包后双击本地运行,vue3vite打包后怎么直接在浏览器双击打开访问,vite打包后显示空白,vite如何支持本地file协议打开,vue3vite打包后如何本地查看网站,vue3vite项目打包后本地启动白屏怎么办,vite打包后的代码如何在本地运行,vite+vue3打包在fIle本地index.html打开项目,打包后如何直接打开index.html文件,vue3

🏆 前端领域优质创作者 1万+

通过 MATLAB/Simulink + Simscape Battery,构建了锂电池老化模型与容量衰减仿真系统

本文基于MATLAB/Simulink平台,构建锂电池老化模型与容量衰减仿真系统,研究储能电池健康管理技术。通过搭建电化学-老化耦合模型,模拟循环和日历老化机制,分析温度、充放电倍率、DOD等因素对电池寿命的影响。系统实现了SOH在线估计和RUL预测功能,仿真了标准日历老化、高倍率循环和峰谷套利等典型工况下的电池衰减行为。结果表明:高温和深充放会显著加速电池老化,而精准的SOH管理可提升储能系统经济性30%以上。文章还探讨了数字孪生、机器学习等高级优化方向,为储能系统长周期运营提供技术支撑。

xiaoheshang_123的博客 398

POJ - 3723 最小生成树 最大生成树 求最大优惠值

题目 题解思路 没看清题目,被绕了一下,这里每个人的雇佣费用都是固定的,我们进行要求出能优惠的最大值,根据题目的权值,可以生成一个最大生成树,求出优惠的最大值。 一开始写着写着写成贪心了,忽略了一个人有多个关系的情况,这里用树形的结构就能很好处理了。 AC代码 #include <iostream> #include <algorithm> #include <cstdio> using namespace std; struct node { int x,

从你的全世界路过 125

微信电脑版本不会自动下载图片吗?——没有找到解决方法。——只会默认下载doc等文件,图片不行,需要自己另存为——有什么办法解决吗?

微信电脑版本不会自动下载图片吗?——没有找到解决方法。——只会默认下载doc等文件,图片不行,需要自己另存为——有什么办法解决吗?此外,用户还可以选择将接收到的图片、视频和文件保存到指定的文件夹中。‌用户可以在微信设置中调整这一设置。

qq_15963745的博客 5088

Conscription POJ - 3723 (最小生成树+并查集)

题目: 传送门 思路: 把人看成点,征募花费看作边,那么就有一个无向图,因为当x和y关系是d时,在已招募x的情况下招募y的花费是10000-d,最小化花费等价于最大化d,故就是求“最大支撑树”(有V个节点,V-1条边,且边权重和最大),进而把d保存为-d,就转换成求无向图的最小生成树问题,直接套模板解决,注意,最后要用10000*V(人数)-最小生成树的边权和 Code: #include <iostream> #include <cstdio> #include <cmath

『 』的博客 206

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

poj 3723 Conscription 并查集+Kruskal 求最小生成树

题意:要招募n个需要征募女兵N人,男兵M人。每征募一个人需要花费10000美元。但是如果已经征募的人中有一些关系亲密的人,那么可以少花一点钱。题目中给你R个男女之间的亲密度关系,如果a号男和m号女有亲密度关系,那么只要现在招募到他们中的一个人,那么招募另外一个人的花费将变为10000-他们之间的亲密度。然后要求你求出招募到所有人的最小花费。 分析:可以求出最多可以减多少钱,用kruskal算

01的世界 513

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

POJ 3723 Conscription (Kruskal并查集求最小生成树)

Conscription Time Limit:1000MS Memory Limit:65536K Total Submissions:14661 Accepted:5102 Description Windy has a country, and he wants to build an army to protect...

weixin_30614587的博客 101

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

H/ G - Conscription POJ - 3723(最小生成树,并查集)

Windy has a country, and he wants to build an army to protect his country. He has picked up N girls and M boys and wants to collect them to be his soldiers. To collect a soldier without any privilege

DS00HY的小博客 323

[POJ3723]Conscription[并查集][kruskal]

题目链接:[POJ3723]Conscription[并查集][kruskal] 第一次做并查集的题目,其实之前我连什么是并查集豆不知道TAT 今儿一天就混这两个概念了,mark下。代码中有些注释,诸君请便。 关于并查集的理解,推荐一篇博文:快点我~~ 具体代码如下: #include #include #include #include using namespace st

闲停 704

POJ - 3723 Conscription 最小生成树

poj3723 大意:题目给定n个女同学,m个男同学,让后给若干个男女关系,每个关系都有一个特定值c,雇佣一个人10000元,而如果当前雇佣的人与已经雇佣的人有关系的话,雇佣钱数就可以-c。要求雇佣所有人花的最少钱数。 还是比较简单的,被自己的假算法骗到了。。。把给定的若干关系看成一个个连通块,对于每个连通块,拿10000元买一个人,让后剩下的人就都可以用优惠之后的价格购买了。这也是比较显然的,因为每个优惠关系最终只能优惠到一个人,需要另一个被雇佣了才能优惠嘛,所以跑一遍最小生成树,让后加上连通块个数*10

DaNIelLAk的博客 313

POJ 3723 Conscription

最小生成树。。。。 Conscription Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6815   Accepted: 2347 Description Windy has a country, and he wants to bu

码代码的猿猿 1万+

poj 3723 Conscription 【最大生成树|最大权森林】

题目:poj 3723 Conscription 题意:要征兵n个男兵和m个女兵,每个花费10000元,但是如果已经征募的男士兵中有和将要征募的女士兵关系好的,那么可以减少花费,给出关系,求最小花费。 分析:这个题目初始一个是个二分图,以为可以从这里入手,但是这个题目这个性质没用。 初始花费没人10000,那么减去其中有关系的就是当前的花费。 要是花费最少,那么减去的最大即

大神养成中..... 5240

poj 3723 Conscription 最小生成树 Java

poj 3723 Conscription 买一个人就可以利用一个关系(一条边),一开始买一个人肯定是要10000的,然后再买一个人就可以根据他之前买的那个人的关系进行减价,相当于一共买n个人的话,是利用到n - 1 条边,所以要构建最大生成树。然后每个人都要基本的10000块,所以答案就是每个人10000 然后减去最大生成树里的所有边的权重。 package 图论; import java.io.BufferedReader; import java.io.IOException; import java

weixin_46621409的博客 235

poj3723Conscription

链接:http://poj.org/problem?id=3723 题意:n个女生m个男生,r对男女之间的关系d,招募一个人要花费10000,但是如果军营中已经有认识的人那么只需要10000-d。 分析:最大生成树。 代码: #include #include #include #include #include #include #include #include #include #i

Fsss 401

POJ3723 Conscription Kruskal算法 并查集

题目链接 Conscription Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 21271 Accepted: 7311 Description Windy has a country, and he wants to build an army to protect his country. He has picked...

饮闲的博客 395

poj3723 Conscription 最小生成树

原题链接:poj3723 Conscription #include #include #include using namespace std; const int MAX_N = 10010 * 2; const int MAX_E = 50010; int N, M, V, E; //顶点数和边数 struct edge{ //cost为u到v边的长度 int u, v

anchorite 1369

poj 3723 Conscription //最小生成森林

poj 3723 Conscription //最小生成森林 Conscription Time Limit:1000MS Memory Limit:65536K Total Submissions:18414 Accepted:6374 Description Windy has a country, and he wants to ...

Rshs 269
上一篇: POJ 2010 Moo University - Financial Aid(优先队列)
下一篇: POJ 1703 Find them, Catch them (并查集)
Interstellar_
博客等级 码龄10年 8粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值