标签:晋级 get 队列 pac span ice max div 先进先出
https://pintia.cn/problem-sets/994805342720868352/problems/994805419468242944
/* *queue的使用,先进先出 *变量定义要有意义 *制定晋级规则以及排名 */ #include<iostream> using namespace std; #include<cstdio> #include<queue> const int MAXN=1010; struct mouse { int weight; int ranks; }mouse[MAXN]; int main() { int number,grouper,order; scanf("%d%d",&number,&grouper); for(int i=0;i<number;i++) { scanf("%d",&mouse[i].weight); } queue<int> queues; for(int i=0;i<number;i++) { scanf("%d",&order); queues.push(order); } int temp=number,group; while(queues.size() != 1) { if(temp%grouper==0) group=temp/grouper; else group=temp/grouper+1; for(int i=0;i<group;i++) { int maxmouse=queues.front(); for(int j=0;j<grouper;j++) { //最后一组老鼠不足grouper时退出循环 if(i*grouper+j>=temp) break; int fronts=queues.front(); if(mouse[fronts].weight > mouse[maxmouse].weight) { maxmouse=fronts; } mouse[fronts].ranks=group+1; //该轮老鼠排名为group+1 queues.pop(); } queues.push(maxmouse); //把胜利的老鼠晋级 } temp=group; //group只老鼠进入下一轮 } //当队列里只剩1只老鼠时,令其排名为1 mouse[queues.front()].ranks=1; for(int i=0;i<number;i++) { printf("%d",mouse[i].ranks); if(i<number-1) printf(" "); } return 0; }
STL_A1056 Mice and Rice (25 分)
标签:晋级 get 队列 pac span ice max div 先进先出
原文地址:https://www.cnblogs.com/2o2o/p/11371354.html