POJ 3723 Conscription(最小生成树)

【工具】GitHub学生认证+PyCharm配置Copilot全流程指南 本文提供了一份详细的GitHub学生认证及在PyCharm中配置Copilot的完整指南。通过完成A2F认证、准备有效材料并使用干净网络环境,学生可免费获取GitHub Copilot Pro订阅,极大提升编程学习与开发效率。 阅读详情

Conscription

题目链接:

http://poj.org/problem?id=3723

解题思路:

把人看做顶点,关系看做边,这个问题就可以转化为求解无向图中最大权森林问题。最大权森林问题可以通过把所有边权取反之后

用最小生成树的算法求解。

AC代码:

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;

const int maxn = 50005;
struct Edge{
    int u,v,cost;
}es[maxn];
int n,m,r;
int V;
int pa[maxn];

bool cmp(Edge a,Edge b){
    return a.cost < b.cost;
}

int findset(int x){
    if(x != pa[x])
        pa[x] = findset(pa[x]);
    return pa[x];
}

int kruskal(){
    sort(es,es+r,cmp);
    for(int i = 0; i <= V; i++)
        pa[i] = i;
    int i,u,v,cnt = V,sum = 0;
    for(i = 0; i < r; i++)
    {
        u = findset(es[i].u);
        v = findset(es[i].v);
        if(u != v)
        {
            sum += es[i].cost;
            pa[v] = u;
            if(--cnt == 1)
                break;
        }
    }
    return sum;
}

int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        scanf("%d%d%d",&n,&m,&r);
        int x,y,d;
        for(int i = 0; i < r; i++){
            scanf("%d%d%d",&x,&y,&d);
            es[i] = (Edge){x,n+y,-d};
        }
        V = n+m;
        printf("%d\n",10000*(V)+kruskal());
    }
    return 0;
}


【SimPy系列博客之官方example学习与解读】—— Example 1: Bank Renege Hello,优快云的各位小伙伴们,拖更了几年后,又重新开始记录这段时间准备学习的东西啦!最近博主在学习 SimPy 的相关知识,发现国内关于 SimPy 的介绍还是相对较少,且缺乏系统性,因此博主打算用1~2周的时间,边学边记,打算从 SimPy 官方给出的几个例子出发分析 SimPy 的使用场景和用法,希望能和大家互勉!那废话不多说,我们直接开始吧!今天要学习的例程是 Bank Renege。 阅读详情

相关推荐

OpenSSH命令注入漏洞复现(CVE-2020-15778)

OpenSSH命令注入漏洞复现 1、简介 OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现,ssh主要就是用来远程控制计算机,或传输文件,OpenSSH是使用SSH透过计算机网络加密通讯的实现。 2、漏洞概述 该漏洞是存在于scp在拷贝文件时产生的一个代码注入漏洞,攻击者可以利用此漏洞执行任意命令,比如:反弹shell, 3、影响版本 openssh <= openssh-8.3p1 4、实验环境 首先下载openssh,版本要符合漏洞影响的版本 服务端:apt-get

weixin_44537595的博客 3637

POJ - 3723 Conscription 最小生成树

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

DaNIelLAk的博客 313

个人信息保护合规审计人员(中级)能力测试试卷

本文是关于个人信息保护合规考试的试题解析,内容涵盖《个人信息保护法》相关规定。试卷包含单选题、多选题、判断题、简答题和案例分析题五种题型,总分100分,考试时间120分钟。试题重点考察个人信息处理的基本原则、敏感个人信息处理要求、合规审计流程、个人信息保护影响评估等内容。通过案例分析题详细解析了人脸识别登录、数据共享、跨境传输等场景下的合规要求。参考答案均严格依据《个人信息保护法》等法律法规,为个人信息处理活动提供了明确的合规指引。

qq_41525079的博客 849

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

机器学习【学校智慧食堂及其应用】

本文主要介绍机器学习【智慧食堂及其应用】

qq_201729558 2570

FairyGUI编辑器自定义菜单扩展插件

本文涉及到的软件有:FairyGUI,VSCode代码环境涉及到了:LuaVSCode插件:EmmyLua在编写FairyGUI编辑器菜单前,了解一下FairyGUIEditor的API会有效的帮助我们解决很多问题。FairyGUI的扩展是通过编辑器自带的插件功能实现的,插件中我使用的是lua环境模板。导入编辑器的LuaAPI,文件可以在FairyGUI-Editor源码的插件目录中找到。接下来将通过功能来说明对应的API作用。

Aili_Xiao的博客 4496

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

使用R语言(ggplot2)绘制KEGG信号通路富集气泡图

本文详细介绍了如何使用R语言的ggplot2包绘制KEGG信号通路富集气泡图,从数据预处理到高级定制技巧,帮助生物信息学研究者直观展示富集分析结果。文章涵盖了气泡图的核心绘制方法、布局优化、常见问题解决方案以及交互式可视化扩展,是进行KEGG富集分析可视化的实用指南。

weixin_42625070的博客 446

[POJ3723] Conscription [最小生成树]

求最大生成树,然后用总值减去即可 也可以重新构造这个图,直接求最小生成树

jinzhao1994的专栏 528

科研问答:医药类本科生(临床、中医、中药与护理)本科阶段是否需要开展科研学习?

医药类本科生(临床、中医、中药与护理)本科阶段是否需要开展科研学习?

MD Code 1507

Codev与Zemax相互转化

Codev与Zemax相互转化

weixin_72050316的博客 1043

POJ 3723 Conscription【最小生成树】

题意: 征用一些男生和女生,每个应都要给10000元,但是如果某个男生和女生之间有关系,则给的钱数为10000减去相应的亲密度,征集一个士兵时一次关系只能使用一次。 分析: kruskal求最小生成树,注意男生和女生用偏移量处理。 代码: #include<iostream> #include<algorithm> #in...

An55511的博客 172

Pulseaudio之同步/异步(十一)

PulseAudio是一个声音服务器,一个后台进程从一个或多个音源(进程或输入设备)接受声音输入 然后重定向声音到一个或多个槽(声卡,远程网络PulseAudio服务,或其他进程)。 PulseAudio的主要特点包括: 可对每一个应用程序进行音量控制Per-application volume controls 可扩展的插件与支持可装载模块架构 兼容性许多流行的音频应用程序 支持多重音源和多重输出 低延时操作和支持延迟测量 一个对处理器资源效率零拷贝内存架构 能够发现本地网络上使用PulseAu

Android系统攻城狮 994

【POJ】3723 Conscription 最小生成树

传送门:【POJ】3723 Conscription

poursoul 906

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

jre9下载 jdk9

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

POJ 3723 Conscription (最小生成树)

题目链接 题目大意: 解题思路: 本题最大干扰是男女配对,其实这个条件一点用都没有,不要想复杂了(想成了二分图,我一开始就是这么想的。。。。) 题目要求招募n个女兵,m个男兵;但是一共就n个女兵,m个男兵,也就是说全都招募了 解法很明显,让(10000 - di)求和最小,也就是边权di求和最大,就是“最大生成树“; 那么就来实现一下最大生成树算法就行! 最大生成树算法(其实就是最小生成树的变种) 把表达式变形一下就是 10000 * (n + m) + (-d1 - d2 - d3 - d4 -

363

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

POJ-3723 Conscription(最小生成树)

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

十分残念的博客 353

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

poj 3723 Conscription(最小生成树)

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

CillyB的博客 613

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

POJ, 3723 Conscription(最小生成树)

题意:征女兵n人,男兵m人。每征兵一个人话费10000美元,如果已经征的人中有关系亲密的人,征另外的人是10000减去亲密度,求最少费用。 分析:建立森林,边的权值为亲密度的相反数,然后用最小生成树连接所有点,得到可以节约的最大费用(是负数),结果也就出来了。 #include #include #include #include #inclu

哎哟不错哦的博客 378

POJ - 3723 Conscription (最小生成树,Kruskal)

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,...

洛 水 283

poj 3723 Conscription (最小生成树)

题意:给你n个女的,m个男的,然后他们之间有r条边,权值是亲密度,然后现在要你招募他们(就是把他们连起来),如果直接招募是一个人10000,如果用关系招募(就是连边),花费是10000-这条边的权值 题解:我开头没看懂题目,以为极难,其实就是给你n+m个点,然后把他们连起来的最小费用啊 考虑到一些人可能是用10000招募的,一些人是用关系招募的,等于是有一个点(不是0-n+m),它到每个点的距

Miracle_ma的专栏 385

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

题目链接:https://cn.vjudge.net/problem/POJ-3723 大意:需要招募女兵N人,男兵M人。每招募一个人需要花费10000美元。但是如果已经招募的人中有一些关系亲密的人,那么可以少花一些钱(10000-亲密值)。给出若干男女之间的亲密关系,求招募所有人的最小费用。(招募每个人时只能用一条关系) 思路:将人看做点(N+M个点),关系看作边,边权为亲密值的相反数。首先

Interstellar_的博客 478

poj 3723 Conscription 最小生成树

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

weixin_33695082的博客 184

POJ 3723 Conscription 最小生成树

【代码】POJ 3723 Conscription 最小生成树。

qq_53038151的博客 133

POJ_3723_Conscription【最小生成树】

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

持之以恒_fighting 357

【POJ - 3723 】Conscription(最小生成树)

Conscription Descriptions 需要征募女兵N人,男兵M人。 每招募一个人需要花费10000美元。 如果已经招募的人中有一些关系亲密的人,那么可以少花一些钱。 给出若干男女之前的1 ~ 9999 之间的亲密度关系, 招募某个人的费用是 10000 - (已经招募了的人中和自己的亲密度的最大值)。 要求通过适当的招募顺序使得招募所有人所花费的费用最小。 Input 输入N, M...

Sky丨Star的博客 95
上一篇: POJ 1182 食物链(并查集)
下一篇: POJ 3169 Layout(差分约束)
yphacker
博客等级 码龄12年 199粉丝 540原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值