news 2026/5/13 7:32:54

PAT 1056 Mice and Rice

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PAT 1056 Mice and Rice



这一题的大意是说Np个老鼠参加比赛,相邻Ng个分成一组进行选拔,每组中选择最重的老鼠晋级,没有晋级的老鼠的排名一个样,按照这种思路给所有的老鼠进行排名,如果最后剩下不足Ng个仍可以分成一组,排名是跟分组个数相关。
这一题最开始我不理解的就是怎么确定排名,后来才明白,先算出当前的组数,然后排名等于组数+1,用测试样例验证是符合的。我们可以采用队列按照题目要求的顺序来保存老鼠的体重和索引,然后对一个个出队,在出队的过程中,我们找最大的体重和与之对应的索引,同时给老鼠排名,每Ng个我们把这Ng个中最重的老师,保存到一个新的队列中,这样遍历完一轮队列,就可以把所有的晋级的老师放入新的队列中,当当前队列为空之后,我们可以把新队列中的晋级的老鼠再赋值回去。循环往复即可。
完整代码如下:

#include<bits/stdc++.h>#include<iostream>usingnamespacestd;//每个老鼠的目标是尽可能的吃的多去成为一个胖老鼠// 玩的顺序是随机的对应Np个人来说// 每NG个程序员组成一个队伍// 最胖的老鼠进入下一个顺序// 所由的失败者是相同的排名// Ng个赢家再组成一个队伍去找最后的赢家//给出体重和最初的排序intNp;intNg;structnode{intw;intorder;}n[1005];intans[1005];intorder[1005];boolflag;queue<node>q;intmain(){cin>>Np>>Ng;for(inti=0;i<Np;i++){intx;cin>>x;n[i].w=x;}for(inti=0;i<Np;i++){intx;cin>>x;order[i]=x;n[x].order=x;}for(inti=0;i<Np;i++){q.push(n[order[i]]);}intgroup;if(Np%Ng==0){group=Np/Ng;}else{group=Np/Ng+1;}intindex=0;intcnt=0;intmaxx=0;// cout<<group<<endl;queue<node>temp;while(!q.empty()){node cur=q.front();//cout<<cur.order<<endl;q.pop();ans[cur.order]=group+1;cnt++;if(cur.w>maxx){maxx=cur.w;index=cur.order;}if(cnt==Ng){temp.push(n[index]);cnt=0;maxx=0;index=0;}if(q.empty()&&cnt>0){temp.push(n[index]);cnt=0;maxx=0;index=0;intgroupnumber=temp.size();if(groupnumber%Ng==0){group=groupnumber/Ng;}else{group=groupnumber/Ng+1;}}if(q.empty()){//说明刚好正分q=temp;intgroupnumber=temp.size();if(groupnumber%Ng==0){group=groupnumber/Ng;}else{group=groupnumber/Ng+1;}while(!temp.empty()){temp.pop();}if(q.size()==1){ans[q.front().order]=1;break;}}}for(inti=0;i<Np;i++){if(i==0){cout<<ans[i];}else{cout<<" "<<ans[i];}}return0;}

总结:这一题是队列模拟,只要弄清楚题意,按逻辑模拟即可

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/13 7:32:10

Arduino创意作品中BLE低功耗通信技术解析

让Arduino“无线”更智能&#xff1a;BLE低功耗通信实战全解析你有没有遇到过这样的窘境&#xff1f;辛辛苦苦做好的温湿度监测器&#xff0c;功能完美&#xff0c;但一通电就得拖着一根USB线&#xff1b;精心设计的可穿戴手环原型&#xff0c;戴上去不到半天就没电了&#xff…

作者头像 李华
网站建设 2026/5/3 6:04:02

10 个降AI率工具,专科生必备!高效降AIGC推荐

10 个降AI率工具&#xff0c;专科生必备&#xff01;高效降AIGC推荐 AI降重工具&#xff1a;让论文更自然&#xff0c;更高效 随着AI技术的广泛应用&#xff0c;越来越多的学生在撰写论文时会使用AI辅助工具来提高效率。然而&#xff0c;随之而来的AIGC率偏高、查重率过高等问题…

作者头像 李华
网站建设 2026/5/10 2:02:55

12、Windows Server 数据备份、恢复与网络协议基础

Windows Server 数据备份、恢复与网络协议基础 1. Windows Server 备份文件 在 Windows Server 中,可通过 MMC 或 Server Manager 访问备份管理单元。通常,可使用备份计划向导来创建备份计划,不过我们先了解一下如何进行一次性备份。 1.1 一次性备份步骤 点击“开始”菜…

作者头像 李华
网站建设 2026/5/4 18:20:20

平台:非缔造者的人生锚点与财富杠杆

在这个互联互通的时代&#xff0c;“平台”早已超越物理空间的范畴&#xff0c;成为贯穿职业发展与财富积累的核心载体。对于绝大多数并非平台缔造者的普通人而言&#xff0c;平台从来不是可有可无的背景板&#xff0c;而是决定个人成就高度、财富厚度的关键变量。它如同无形的…

作者头像 李华
网站建设 2026/5/5 19:41:10

跑步耳机怎么选?高口碑十款运动耳机推荐,哪款买了不后悔

“你跑步的时候耳机会不会老掉&#xff1f;或者戴久了耳朵疼&#xff1f;”我自己每天晨跑、健身房都去&#xff0c;也经历过这种困扰。后来用了好多运动耳机&#xff0c;这篇文章我就想跟你分享哪些耳机戴得舒服、听得爽&#xff0c;又不会影响运动。&#xff08;在推荐之前&a…

作者头像 李华