news 2026/6/26 18:42:11

排座椅【牛客tracker 每日一题】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
排座椅【牛客tracker 每日一题】

排座椅

时间限制:1秒 空间限制:50M

知识点:贪心

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

教室内共有n nnm mm列座位,坐在第i ii行第j jj列同学的位置记为( i , j ) (i,j)(i,j)

为了方便进出,班主任计划设置k kk横向通道(贯穿整列的水平通道)与l ll纵向通道(贯穿整行的竖直通道)。通道位于相邻两行(或两列)之间。

班主任记录了d dd对经常交头接耳的同学,他们的位置( x i , y i ) (x_i,y_i)(xi,yi)( p i , q i ) (p_i,q_i)(pi,qi)保证相邻(上下或左右)。她希望通过合理放置通道,使尽可能多的"交头接耳"对被通道隔开。

现请你输出唯一的最优方案,在该方案下,仍未被通道隔开的"交头接耳"对的数量最少。

输入描述:

第一行输入五个整数n , m , k , l , d ( 2 ≦ n , m ≦ 1 0 3 ; 0 < k < n ; 0 < l < m ; 0 < d ≦ 2 × m i n n,m,k,l,d(2≦n,m≦10^3; 0<k<n; 0<l<m; 0<d≦2×minn,m,k,l,d(2n,m103;0<k<n;0<l<m;0<d2×min⁡{n × m , 2 × 1 0 3 n×m,2×10^3n×m,2×103}) ))

接下来d dd行,每行输入四个整数x i , y i , p i , q i x_i,y_i,p_i,q_ixi,yi,pi,qi,表示坐标( x i , y i ) (x_i,y_i)(xi,yi)( p i , q i ) (p_i,q_i)(pi,qi)的两位同学会交头接耳,且两坐标上下相邻或左右相邻。

保证最优方案存在且唯一。

输出描述:

第一行输出k kk个严格递增的整数a 1 , a 2 , … , a k ( 1 ≦ a 1 < ⋯ < a k ≦ n − 1 ) a_1,a_2,…,a_k(1≦a_1<⋯<a_k≦n−1)a1,a2,,ak(1a1<<akn1),在行a i a_iaia i + 1 a_{i+1}ai+1之间设置横向通道。

第二行输出l ll个严格递增的整数b 1 , b 2 , … , b l ( 1 ≦ b 1 < ⋯ < b l ≦ m − 1 ) b_1,b_2,…,b_l(1≦b_1<⋯<b_l≦m−1)b1,b2,,bl(1b1<<blm1),在列b i b_ibib i + 1 b_{i+1}bi+1之间设置纵向通道。

示例1

输入:

4 5 1 2 3 4 2 4 3 2 3 3 3 2 5 2 4

输出:

2 2 4

说明:

该样例如下图所示,蓝底斜线方格为第一对交头接耳的同学,绿底带叉方格为第二对交头接耳的同学,粉底带星方格为第三对交头接耳的同学。粗线代表通道。该划分方案为唯一最优方案。

示例2

输入:

2 2 1 1 4 1 1 1 2 1 1 2 1 2 1 2 2 1 2 2 2

输出:

1 1

解题思路

首先初始化两个结构体数组,分别记录纵向通道(列间)和横向通道(行间)的位置编号及能隔开的交头接耳对数,遍历每对交头接耳的同学,若两人左右相邻则累加对应列间位置的计数,若上下相邻则累加对应行间位置的计数;随后对纵向、横向计数数组按隔开对数降序排序,选取前l ll个纵向位置和前k kk个横向位置;再将选中的位置按编号升序排序,最终依次输出排序后的横向、纵向通道位置;该贪心策略优先选择隔开对数最多的位置,保证最大化隔开的交头接耳对,且因最优方案唯一,排序操作能精准得到结果,时间复杂度适配n nnm ≤ 1 e 3 m≤1e3m1e3d ≤ 2 e 3 d≤2e3d2e3的规模,高效构造出唯一的最优通道放置方案。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefpair<ll,ll>pii;constll p=1e9+7;constll N=5e2+20;structIDCnt{ll id=0,cnt=0;}cnt[2][1005];boolcmp1(IDCnt a,IDCnt b){returna.cnt>b.cnt;}boolcmp2(IDCnt a,IDCnt b){returna.id<b.id;}intmain(){ll n,m,k,l,d;cin>>n>>m>>k>>l>>d;for(ll i=1;i<=m;i++)cnt[0][i].id=i;for(ll i=1;i<=n;i++)cnt[1][i].id=i;for(ll i=0;i<d;i++){ll x,y,p,q;cin>>x>>y>>p>>q;if(x==p)++cnt[0][min(y,q)].cnt;else++cnt[1][min(x,p)].cnt;}sort(cnt[0]+1,cnt[0]+m,cmp1);sort(cnt[1]+1,cnt[1]+n,cmp1);sort(cnt[0]+1,cnt[0]+l+1,cmp2);sort(cnt[1]+1,cnt[1]+k+1,cmp2);for(ll i=1;i<=k;i++)cout<<cnt[1][i].id<<" ";cout<<endl;for(ll i=1;i<=l;i++)cout<<cnt[0][i].id<<" ";return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/25 15:52:51

LangFlow用户案例征集活动开启公告

LangFlow用户案例征集活动开启公告 在AI应用开发日益普及的今天&#xff0c;一个有趣的现象正在发生&#xff1a;越来越多的产品经理、教育工作者甚至非技术背景的创业者&#xff0c;开始尝试构建自己的智能问答系统、文档助手或自动化代理。然而&#xff0c;面对LangChain这样…

作者头像 李华
网站建设 2026/6/25 15:30:00

LangFlow事件驱动机制能否实现?技术可行性分析

LangFlow 事件驱动机制能否实现&#xff1f;技术可行性分析 在企业智能化转型的浪潮中&#xff0c;AI 工作流平台正从“实验玩具”向“生产引擎”演进。LangFlow 作为 LangChain 生态中最受欢迎的可视化编排工具&#xff0c;凭借拖拽式界面极大降低了 AI 应用开发门槛。但一个关…

作者头像 李华
网站建设 2026/6/26 2:41:08

自动驾驶环境中的车辆目标检测-Mask-RCNN模型应用与参数配置

CARS数据集是一个专注于自动驾驶车辆目标检测的数据集&#xff0c;包含307张经过预处理的高速公路场景图像。所有图像均已通过EXIF方向自动校正&#xff0c;并统一调整为640x60像素的尺寸&#xff0c;未应用图像增强技术。数据集采用YOLOv8标注格式&#xff0c;仅包含一个目标类…

作者头像 李华
网站建设 2026/6/23 20:14:17

Open-AutoGLM加密传输协议深度解析(仅限高级工程师知晓的配置技巧)

第一章&#xff1a;Open-AutoGLM加密传输协议配置在构建高安全性通信系统时&#xff0c;Open-AutoGLM协议提供了一套基于非对称加密与动态密钥协商的传输保护机制。该协议支持前向保密、身份认证和数据完整性校验&#xff0c;适用于微服务间敏感数据交换场景。核心配置项说明 e…

作者头像 李华
网站建设 2026/6/26 7:28:30

IO-Link技术综合研究报告

IO-Link技术综合研究报告一、技术路线优劣势分析1.1 传统工业总线方案优势&#xff1a;高可靠性&#xff1a;满足工业级EMC/抗干扰要求实时性强&#xff1a;支持确定性通信周期&#xff08;通常<10ms&#xff09;$$ \text{响应时间} T_{\text{processing}} T_{\text{trans…

作者头像 李华
网站建设 2026/6/25 10:27:29

揭秘Open-AutoGLM TLS握手失败根源:4个关键指标决定你的服务稳定性

第一章&#xff1a;揭秘Open-AutoGLM TLS握手失败根源&#xff1a;4个关键指标决定你的服务稳定性在部署 Open-AutoGLM 服务时&#xff0c;TLS 握手失败是导致连接中断的常见问题。该问题不仅影响客户端通信&#xff0c;还可能引发服务不可用。深入分析表明&#xff0c;以下四个…

作者头像 李华