[题解]P5687 [CSP-S2019 江西] 网格图

news/2024/11/15 21:03:26/文章来源:https://www.cnblogs.com/Sinktank/p/18548558

P5687 [CSP-S2019 江西] 网格图

简单来说题目就是给定一个\(n\times m\)的网格图,同行边权相同,同列边权相同,求该网格图的最小生成树。

根据Kruskal算法的贪心思想,我们要优先选择权值尽可能小的行,并将这条边应用于尽可能多的列。列方向同理。

为了保证最终生成树的连通性,我们显然要先把最小的行和最小的列全都选上,如下图所示:

可以发现,如果当前已经选择了\(x\)组行方向上的边,此时如果选列方向上的边,则最多能放\(n-x\)条。列方向同理。

根据贪心思想,接下来我们选择第\(3\)行,此时我们最多能放\(8-1=7\)条边,将其全部选择。

根据贪心思想,接下来我们选择第\(6\)列(或第\(2\)列),此时我们最多能放\(5-2=3\)条边,将其全部选择。
我们发现最多只能放\(3\)条,否则一定会出现环。
……

有了上面的结论,我们就可以写出代码了。将行和列的权值分别排序,先各选去一个最小值,再用两个指针分别指向两个数组的第\(2\)为,每次选权值最小的行/列即可。

点击查看代码
#include<bits/stdc++.h>
#define int long long
#define N 300010
using namespace std;
int n,m,a[N],b[N],posa,posb,ans,cnt;
signed main(){cin>>n>>m;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=m;i++) cin>>b[i];sort(a+1,a+1+n);sort(b+1,b+1+m);posa=1,posb=1;ans=a[1]*(m-1)+b[1]*(n-1),cnt=n+m-2;while(1){if(a[posa+1]<b[posb+1]){ans+=a[++posa]*(m-posb),cnt+=(m-posb);}else{ans+=b[++posb]*(n-posa),cnt+=(n-posa);}if(cnt==n*m-1) break;}cout<<ans<<"\n";return 0;
}

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

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

相关文章

鸿蒙NEXT自定义组件:太极Loading

【引言】(完整代码在最后面) 本文将介绍如何在鸿蒙NEXT中创建一个自定义的“太极Loading”组件,为你的应用增添独特的视觉效果。 【环境准备】 电脑系统:windows 10 开发工具:DevEco Studio NEXT Beta1 Build Version: 5.0.3.806 工程版本:API 12 真机:mate60 pro 语言:…

09C++选择结构(3)——教学

1、求3个整数中最小值; 2、3个数排序; 3、随机函数rand(); 4、if语句的应用; 5、bug与debug一、求3个整数中最小值 题目:输入三个整数,表示梨的重量,输出最小的数。 方法1:经过三次两两比较,得出最小值。 a<=b && a<=c min=ab<=c && b<=a…

趋动云—pycharm连接教程

一、创建项目 二、上传代码 三、启动趋动云虚拟环境四、连接pycharm 1. 打开pycharm,创建项目(上传代码),或者直接打开项目代码 2. 配置在线虚拟环境 (1)点击设置Settings->Python Interpreter->Add Interpreter->On SSH (2)新建在线虚拟环境连接 输入信息:…

校园AI语音识别霸凌监控系统

校园AI语音识别霸凌监控系统通过音频识别技术,校园AI语音识别霸凌监控系统针对校园内监控难以覆盖的区域,如厕所、宿舍、天台等,进行全天候的音频监控。系统通过识别特定的关键词,如“救命”、“老师救我”等,来监测可能发生的霸凌事件。系统采用YOLOv5 AI音频算法,该算法…

校园AI防霸凌报警系统

校园AI防霸凌报警系统利用先进的AI音频分析技术,校园AI防霸凌报警系统能够在没有摄像头的隐私区域,如厕所和宿舍,实时监测异常声音。系统的核心是YOLOv5算法,它能够准确识别出求救声、谩骂声等异常声音,从而触发报警机制。智能防欺凌终端是系统的前线设备,安装在校园的隐…

校园宿舍学生防欺凌检测系统

校园宿舍学生防欺凌检测系统通过在宿舍、卫生间、楼梯角等校园内隐蔽位置安装AI智能语音报警终端。校园宿舍学生防欺凌检测系统通过这些终端麦克风捕捉周围的声音,并将其传输至AI算法模型进行分析。校园宿舍学生防欺凌检测系统能够实时处理语音流,当识别出特定的关键词或短语…

餐厅明厨亮灶实施方案 后厨明厨亮灶监控系统

餐厅明厨亮灶实施方案 后厨明厨亮灶监控系统通过监控摄像机采集后厨人员的监控据,利用AI技术进行数据解决与分析。餐厅明厨亮灶实施方案 后厨明厨亮灶监控系统自动检测识别后厨人员的违规行为,若没有戴厨师帽、口罩、工服等,然后进行抓拍做好记录。系统一旦发现违规行为,立…

校园卫生间学生防欺凌监测系统

校园卫生间学生防欺凌监测系统在宿舍、厕所等关键位置部署监测终端,校园卫生间学生防欺凌监测系统通过AI音频算法分析技术能够实时处理音频流,并识别出预设的求救特征词或异常声音,如“救命”、“住手”等,这些通常与暴力或紧急情况相关联。一旦监测到预设的求救特征词或异…

【圆圆的日语教室】日语入门第2课

第二课 相似的假名平假名的书写あ(a)的书写第二笔不要太直,它是从草书演变过来的,特点是圆润有弧度 第三笔要交叉 长得像“安”い(i)的书写第一笔要勾上去う(u)的书写第一笔:点 第二笔:起笔不要太平,先往上走再往下拐。え(e)的书写像π 第一笔:点 第二笔:横上去,折下来…

08C++选择结构(2)

1、逻辑变量; 2、逻辑运算符; 3、逻辑运算符的优先级; 4、复合语句一、逻辑变量 教学视频 存储类似灯亮或灯灭、是男还是女等结果只有两种可能的数据时,可以使用逻辑型变量。 逻辑型变量用关键字bool定义,所以又称为布尔变量,其值只有两个false(假)和true(真),false…

【跟着阿舜学音乐-笔记】1.11和弦的表现形式

和弦的分配 在音乐演奏中,和弦会有纵向和横向两种分配形式。 和弦最低的音铺垫了整体和弦宏观色彩与基调,一般词用和弦的根音,但并不一定。 同时最低的音通常要与上方的音有一定距离,一般是大于等于五度,具体也和音区有关。 所谓和声铺底,就是铺设主要和弦音的区域,一般…

NOIP2024加赛5

以后我要天天给学弟加hack,以后我要每个包绑一个hack。 交 hack,说高尚了,是在给你找错,代码有不是他写的,错又不是他犯的,找出错来想让大家警示一下,还要费心想 hack,你有什么理由骂。 退一万步讲,人家喜欢 hack 怎么你了,你可以过题来获得快感,人家不能插你代码获…