news 2026/7/14 23:55:50

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/7/12 23:40:08

北京商业文旅街区美陈氛围升级设计公司哪家专业?

随着北京国际消费中心城市建设的深化&#xff0c;文商旅体展融合发展已成为商圈升级的核心趋势&#xff0c;商业文旅街区也正从单纯的消费载体&#xff0c;迭代为承载城市文化、传递生活方式的体验场景。从胡同肌理中的潮流业态共生&#xff0c;到历史地标旁的沉浸式体验营造&a…

作者头像 李华
网站建设 2026/7/1 14:06:54

培养组分菌:如何对MAG进行最适生长温度预测

未培养微生物&#xff08;Uncultured Microorganisms&#xff09;占全球微生物多样性的99%以上&#xff0c;因无法进行实验室培养&#xff0c;其基础生理参数&#xff08;如最适生长温度&#xff09;长期缺失&#xff0c;成为制约微生物功能解析的关键瓶颈。通过宏基因组binnin…

作者头像 李华
网站建设 2026/7/12 15:35:52

设计模式:责任链模式(mybatis数据权限实现)

目录 一、先理清核心&#xff1a;MyBatis 责任链 数据权限插件的结合逻辑 二、数据权限插件的完整实现&#xff08;基于责任链&#xff09; 步骤 1&#xff1a;定义数据权限上下文&#xff08;存储当前用户的权限信息&#xff09; 步骤 2&#xff1a;实现数据权限插件&…

作者头像 李华
网站建设 2026/7/1 21:35:37

华夏苏氏品牌一体化泵站:智能化水利解决方案的技术革新

一、企业实力与品牌背景福建苏氏阀门科技有限公司成立于2016年2月25日&#xff0c;是一家专注于智能水表及管材、管件、阀门生产的国家级高新技术企业。公司注册资本1000万元&#xff0c;总资产数亿元&#xff0c;占地面积6666平方米&#xff0c;总投资约1.8亿元&#xff0c;拥…

作者头像 李华
网站建设 2026/7/11 9:18:00

Windows系统文件msdbg2.dll丢失损坏 下载修复方法

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/7/13 11:51:01

Windows系统文件MSDERUN.DLL缺少找不到 下载修复方法

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华