算法题--排椅子(贪心)

在这里插入图片描述
题目链接

code

#include<bits/stdc++.h>
using namespace std;struct node{int indx;//用来存储数组下标int cnt;//用来计数
};bool cmp(node a,node b){  //判断是否是数字最大的一个就是经过最多谈话人的道return a.cnt>b.cnt;
}
node row[2010],cow[2010];bool cmp2(node a,node b){return a.indx<b.indx;//判断是否为下标最小的
}int main(){int M,N,K,L,D;int O=0,I=0;cin>>M>>N>>K>>L>>D;for(int i=0;i<=N;i++){cow[i].indx=i;//将下标记录}for(int i=0;i<=M;i++){row[i].indx=i;}for(int i=0;i<D;i++){int x,y,p,q;cin>>x>>y>>p>>q;//输入点if(y==q){row[min(x,p)].cnt++; //如果同 row}if(x==p){cow[min(y,q)].cnt++; //如果同cow}}sort(cow,cow+N+1,cmp); //排序sort(row,row+M+1,cmp);sort(row,row+K,cmp2); //对下标排序否则只有%10因为要输出下标最小而且穿过人最多的道的位置sort(cow,cow+L,cmp2);for(int i=0;i<K;i++){cout<<row[i].indx<<" "; //输出y}cout<<"\n";for(int i=0;i<L;i++){cout<<cow[i].indx<<" "; //输出x}
}

下面我对其进行详细讲:

请添加图片描述

这个C++程序是一个非常特定的问题的解决方案。代码逻辑主要涉及一些数组操作和排序,下面我会逐步解释代码的各个部分。

  1. 结构体 node:

    • indx:用于存储数组的索引。
    • cnt:用于计数。这个结构体似乎被用来跟踪行和列的状态。
  2. 函数 cmp(node a, node b):

    • 这是一个比较函数,用于比较两个 node 对象的 cnt 字段。如果 a.cnt 大于 b.cnt,则返回 true。这个函数在后面的排序操作中用到,似乎是为了根据某个“计数”来对数组进行排序。
  3. 数组 row 和 cow:

    • 这两个数组存储了2010个 node 对象,分别命名为 row[i]cow[i]。它们被初始化为它们的索引值,即 i
  4. 函数 cmp2(node a, node b):

    • 这是另一个比较函数,用于比较两个 node 对象的 indx 字段。如果 a.indx 小于 b.indx,则返回 true。这个函数在后面的排序操作中用到,似乎是为了根据某个“索引”来对数组进行排序。
  5. 主函数 main():

    • 首先,输入五个整数:M, N, K, L, D。
    • 然后,对 cowrow 数组进行初始化,将它们的索引值设为它们各自的索引。
    • 接着,进行 D 次循环,每次循环读取四个整数 x, y, p, q。如果 y 和 q 相等,或者 x 和 p 相等,那么对应的计数就会增加。
    • 然后,对 cowrow 数组按照前面提到的比较函数进行排序。
    • 接着,对 row 数组的前 K 个元素和 cow 数组的前 L 个元素进行索引排序(由 cmp2 比较函数决定)。
    • 最后,输出排序后的 rowcow 数组的前 K 和 L 个元素的索引。

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

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

相关文章

MatrixOne Meetup回顾 | 深圳站

11月11日&#xff0c;MatrixOne 社区在深圳成功举办了第二次 MatrixOne Meetup。活动当天&#xff0c;数十位外部小伙伴到场参与&#xff0c;一同分享云原生数据库相关知识内容。此次活动&#xff0c;我们也邀请了来自深圳素问智能的外部讲师&#xff0c;分享了目前火爆的大模型…

什么是死锁?如何产生死锁?死锁的必要条件?怎么解决死锁?

🔒1、什么是死锁 死锁是一个非常让程序猿烦恼的问题,一旦所写的程序有了死锁,那么程序就无法执行下去,会出现严重的 bug,并且死锁非常隐蔽,我们不会轻易发现它,在开发阶段,不经意期间我们就会写出死锁,很难检测出来。 那么什么是死锁呢?竟然让我们如此烦恼。 “死…

为何要隐藏IP地址?网络上哪些行为需要隐藏IP和更换IP?

网络已经成为现代人生活的重要组成部分&#xff0c;人们在网络上交流、学习、娱乐、购物等。但是&#xff0c;在享受网络带来的便利时&#xff0c;我们也需要时刻保护自己的隐私和安全。其中&#xff0c;IP地址作为网络通信中的重要标识&#xff0c;如何隐藏以及在哪些情况下需…

数据中台具体是怎么解决数据孤岛的?_光点科技

在数字化时代&#xff0c;数据已成为企业的核心资产。然而&#xff0c;由于历史遗留问题、部门壁垒等因素&#xff0c;很多企业面临着“数据孤岛”的问题。数据孤岛是指在一个组织内&#xff0c;数据被分散在不同的系统中&#xff0c;彼此隔离&#xff0c;不能有效整合和利用。…

建设银行RPA应用实践

当下&#xff0c;银行业正在从“互联网金融”时代向“新科技金融”时代迈进&#xff0c;在目前经济形势严峻、人力成本持续增加的经营背景下&#xff0c;以科技解放人力将是智能化银行发展的必然趋势。RPA技术为解决上述问题提供了崭新的路径。 RPA&#xff08;机器人流程自动…

软件开发的生命周期:从构想到维护

目录 需求分析阶段 设计阶段 实现阶段 测试阶段 部署阶段 维护阶段 结语 软件开发是一项复杂而又精密的工程&#xff0c;它的整个过程被称为软件开发生命周期。这一生命周期涵盖了从最初构想到最终维护的各个阶段&#xff0c;每个阶段都有其独特的任务和活动。在本文中&…

与原有视频会议系统对接

要实现与原有视频会议系统对接&#xff0c;需要确保通信协议的一致性。连通宝视频会议系统可与第三方视频会议系统对接。实现与第三方会议系统对接还可以使用会议室连接器&#xff0c;可以确保不同系统之间的数据传输和交互。 具体对接流程可能因不同品牌和类型的视频会议系统而…

小红书产品种草的特点是什么,怎么选择种草形式?

随着小红书不断占领各个群体的移动端&#xff0c;这也标志着平台的种草形式慢慢成熟&#xff0c;但是很多时候&#xff0c;掌握正确的方式可能会使你的产品种草更为快捷。今天&#xff0c;我们为大家分享下小红书产品种草的特点是什么&#xff0c;怎么选择种草形式&#xff1f;…

程序员养生指南:平衡工作与健康的七大要点

目录 前言1 养成运动的习惯2 合理安排工作和休息时间3 避免长时间的坐姿4 合理饮食5 定期体检6. 保持社交与休闲7. 持续学习和进步结语 前言 随着科技的快速发展&#xff0c;程序员的工作也变得愈发重要。然而&#xff0c;长时间面对计算机的工作方式也带来了一系列健康问题。…

食品生产温湿度监控,这个方法最简单!

随着科技的不断进步&#xff0c;温湿度监控在各行业中变得愈发重要。无论是在医疗、制药、食品生产、物流还是信息技术领域&#xff0c;保持适当的温湿度水平对于维护产品质量和设备稳定性至关重要。 在这个背景下&#xff0c;温湿度监控系统成为企业追求高效运营和产品质量保障…

【Python表白系列】无限弹窗,满屏表白代码来啦(完整代码)

文章目录 满屏表白代码环境需求完整代码详细分析系列文章 满屏表白代码 环境需求 python3.11.4PyCharm Community Edition 2023.2.5pyinstaller6.2.0&#xff08;可选&#xff0c;这个库用于打包&#xff0c;使程序没有python环境也可以运行&#xff0c;如果想发给好朋友的话需…

2023年11月25日~12月1日周报(继续调试OpenFWI代码)

目录 一、前言 二、学习情况 2.1 train.py的理解 2.11 定义数据集 2.12 定义损失函数、优化器 2.13 加载模型 2.14 开始训练 2.2 test.py的理解 2.21 定义测试集 2.22 加载模型 2.23 开始test 三、遇到的部分问题及解决 3.1 module torchvision has no attribute…